Saya ingin ini berbasis OS, jadi saya tidak perlu koneksi internet atau browser terbuka dll. Hanya sesuatu yang bisa terjadi di latar belakang
Cara termudah untuk melakukannya adalah dengan sebuah aplikasi, tetapi di sini adalah bagaimana melakukannya hanya dengan perintah OS bawaan. Saya tahu Anda ingin ini dikendalikan oleh peristiwa, tetapi saya tidak yakin bagaimana mencapainya, jadi inilah salah satu cara untuk memeriksa tingkat baterai, kemudian melakukan sesuatu yang lain jika berada di atas / di bawah ambang batas.
Anda dapat mempertimbangkan suatu launchd
proses, ini pada dasarnya adalah tugas yang dijadwalkan yang berjalan setiap x
menit. Mereka sering digunakan oleh pengguna tingkat lanjut, tetapi tidak terlalu sulit untuk diatur. Anda mengkonfigurasi tugas launchd terjadwal dengan file .plist yang Anda masukkan ke dalam direktori ini: Macintosh HD\Library\LaunchDaemons
dan ini adalah bagaimana Anda menyusun file .plist;
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Debug</key>
<true/>
<key>ExitTimeOut</key>
<integer>120</integer>
<key>Label</key>
<string>com.me.BatteryInfo</string>
<key>ProgramArguments</key>
<array>
<string>/Users/yourusername/batt.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>1800</integer>
</dict>
</plist>
Jika Anda menyimpan file itu seperti com.me.BatteryInfo
dalam LaunchDaemons
folder yang disebutkan di atas, itu akan membuat tugas terjadwal yang berjalan setiap 30 menit. Angka,, 1800
langsung di atas </dict>
adalah waktu dalam detik seberapa sering Anda ingin tugas dijalankan. Di mana dikatakan <string>/Users/yourusername/batt.sh</string>
adalah tempat Anda menentukan skrip mana yang berjalan sesuai jadwal. Anda harus pergi <string>
dan </sting>
tetap utuh.
Baris <string>com.me.BatteryInfo</string>
adalah nama unik dari tugas yang dijadwalkan. Jika Anda ingin membuat lebih dari satu, pastikan masing-masing .plist memiliki nama unik di sini.
Hal selanjutnya yang perlu Anda lakukan adalah mengubah kepemilikan .plist menjadi root
. Ini diperlukan sebagai fitur keamanan (untuk menghentikan perangkat lunak / pengguna yang membuat jadwal tugas jahat, saya kira). Untuk mengubah kepemilikan file, lakukan sudo chown root \Library\LaunchDaemons\yourtask.plist
(ganti yourtask.plist dengan nama file sebenarnya dari .plist yang Anda buat). Tugas ini akan meminta kata sandi Anda.
Sekarang Anda perlu membuat skrip yang akan berjalan secara berkala. Anda perlu membuat file .sh (skrip bash) untuk memberi tahu komputer apa yang harus dilakukan. Untuk membuat file .sh, buka editor teks programer, seperti Sublime Text atau Komodo Edit . JANGAN gunakan Edit Teks, karena sering menambahkan teks ke file Anda yang akan mengganggu skrip Anda. Edit Teks tidak seharusnya digunakan untuk kode.
Buat skrip (file .sh) dengan kode berikut;
#!/bin/sh
percent=$(ioreg -l | awk '$3~/Capacity/{c[$3]=$5}END{OFMT="%.3f";max=c["\"MaxCapacity\""];print(max>0?100*c["\"CurrentCapacity\""]/max:"?")}')
if [ $percent > 95 ]
then
echo 'charged.'
fi
exit 0
Ganti echo 'charged.'
dengan perintah terminal yang ingin Anda jalankan ketika baterai diisi. open /Applications/Notes.app
akan membuka aplikasi Notes; Anda dapat mengubah direktori untuk membuka aplikasi yang berbeda.
$percent > 95
Ini memberitahu baris berikutnya untuk hanya berjalan ketika baterai lebih dari 95
diisi. Anda dapat mengubah ini menjadi apa pun yang Anda inginkan. Level baterai di sini akan sering sedikit berbeda dengan apa yang ditampilkan di bilah menu di bagian atas. Jika Anda ingin 'berjalan saat baterai terisi penuh', saya sarankan membiarkan ini sebagai> 95 . Jika Anda ingin tugas dijalankan saat baterai Anda di bawah 20% misalnya, ubah ke$percent < 20
CATATAN: Karena ini adalah tugas yang dijadwalkan, skrip Anda akan berjalan setiap x
beberapa menit. Ini berarti jika Anda memasukkan open \Applications\Notes.app
skrip Anda, aplikasi Notes akan mulai setiap x
menit (jika baterai Anda terisi)
Tugas ini akan berjalan bahkan jika tidak ada yang masuk.
Saya tahu Anda menanyakan pertanyaan ini beberapa waktu yang lalu, tetapi mudah-mudahan ini akan membantu seseorang.