6 menit baca
Daftar isi7 bagian
- Apa Itu Termux API dan Kenapa Butuh Dua Bagian
- Kenapa Termux dan Termux:API Harus dari Sumber yang Sama
- Cara Install Termux API
- Izin Android yang Diminta Termux API
- Daftar Perintah Termux API yang Sering Dipakai
- Contoh Skrip Termux API: Notifikasi Saat Baterai Hampir Habis
- Error yang Sering Muncul Saat Memakai Termux API
Termux API adalah pasangan aplikasi Android Termux:API dan paket termux-api yang membuat perintah di Termux bisa memakai fungsi HP, misalnya membaca status baterai, memunculkan notifikasi, mengisi clipboard, atau memotret. Kalian perlu memasang keduanya, dan aplikasi Termux serta Termux:API harus berasal dari sumber yang sama: sama-sama F-Droid atau sama-sama GitHub.
Kalau perintah dasar seperti pkg install dan nano masih asing, buka dulu daftar perintah Termux kami, karena contoh di bawah memakai keduanya.
Apa Itu Termux API dan Kenapa Butuh Dua Bagian
Termux sendiri adalah terminal dan lingkungan Linux. Ia tidak bisa langsung menyalakan senter, membaca lokasi, atau memunculkan notifikasi Android. Pekerjaan itu diambil alih Termux API, yang nama resminya ditulis Termux:API. README repositorinya menyebut aplikasi ini membuka API Android supaya bisa dipakai dari baris perintah, skrip, atau program lain.
Aplikasi Termux:API berjalan di sisi Android. Dialah yang memanggil fungsi HP dan meminta izin ke pengguna. Paket termux-api dipasang di dalam Termux dan berisi perintah seperti termux-battery-status atau termux-notification. Perintah itu memproses argumen, meneruskan permintaan ke aplikasi lewat program bantu bernama termux-api, lalu menampilkan hasilnya di terminal. Beberapa perintah, seperti status baterai dan lokasi, mengembalikan hasil dalam format JSON.
Jadi paket tanpa aplikasi tidak punya tujuan untuk dipanggil, dan aplikasi tanpa paket tidak punya perintah untuk dijalankan. Deskripsi paket di repositori Termux pun mengingatkan hal yang sama: pasang juga aplikasi Termux:API.
Kenapa Termux dan Termux:API Harus dari Sumber yang Sama
Syarat ini wajib dipenuhi sebelum memasang Termux API. README termux-app menjelaskan bahwa APK dari tiap sumber ditandatangani dengan kunci yang berbeda. Termux dan semua pluginnya, termasuk Termux:API, memakai sharedUserId com.termux yang sama, sehingga semuanya harus ditandatangani dengan kunci yang sama. README Termux:API menambahkan bahwa hanya aplikasi Termux utama yang boleh memanggil fungsi di aplikasi API, dan izinnya baru bekerja bila tanda tangannya cocok.
Pasangkan Termux dari F-Droid dengan Termux:API dari F-Droid, atau Termux dari GitHub dengan Termux:API dari GitHub. Kalau dicampur, Android biasanya menolak pemasangan dengan pesan seperti App not installed, INSTALL_FAILED_SHARED_USER_INCOMPATIBLE, atau signatures do not match previously installed version.
Mau pindah sumber? Hapus dulu Termux beserta semua pluginnya, lalu pasang ulang semuanya dari sumber baru. README Termux menyarankan mencadangkan isi Termux sebelum menghapusnya. Untuk Google Play, README yang sama menyebut build di sana masih cabang eksperimental dengan fitur yang belum lengkap, dan menyarankan F-Droid atau GitHub bagi yang bisa memakainya.
Cara Install Termux API
- Pastikan Termux terpasang dari F-Droid atau dari halaman rilis GitHub
termux/termux-app. - Pasang aplikasi Termux:API dari sumber yang sama: halaman
com.termux.apidi F-Droid, atau halaman Releases repositoritermux/termux-apidi GitHub (nama file APK-nya memuatgithub.debug). - Buka Termux, lalu pasang paket perintahnya dengan
pkg install termux-api. - Uji dengan
termux-battery-status. Kalau berhasil, terminal menampilkan JSON yang antara lain berisipercentage(persen baterai),status(misalnyaCHARGINGatauDISCHARGING),plugged, dantemperature.
Di antara perintah Termux API, status baterai tidak meminta izin apa pun, jadi cocok untuk tes pertama. Perintah yang menyentuh kamera, lokasi, atau mikrofon akan memunculkan dialog izin saat pertama kali dipanggil.
Izin Android yang Diminta Termux API
Aplikasi Termux API mendaftarkan banyak izin di manifesnya, termasuk kamera, lokasi, mikrofon, kontak, SMS, dan getar. Izin yang sensitif tidak diberikan otomatis. Aplikasi memeriksanya setiap kali perintah dipanggil. Bila izin belum ada, ia membuka dialog izin dan mengembalikan pesan error ke terminal. Beberapa contohnya:
| Perintah | Izin Android yang diperiksa |
|---|---|
termux-camera-photo | CAMERA |
termux-location | ACCESS_FINE_LOCATION |
termux-microphone-record | RECORD_AUDIO |
termux-contact-list | READ_CONTACTS |
termux-call-log | READ_CALL_LOG |
termux-sms-send | READ_PHONE_STATE dan SEND_SMS |
Kalau izin kamera belum diberikan, misalnya, keluarannya seperti ini:
{
"error": "Please grant the following permission to use this command: android.permission.CAMERA"
}
Setelah izin diberikan lewat dialog, jalankan ulang perintahnya. Kalau izin sempat ditolak, buka pengaturan aplikasi Termux:API di Android, masuk ke bagian izin, lalu aktifkan izin yang disebut di pesan error.
Lokasi punya syarat tambahan. Di Android 11 ke atas, Termux:API juga memeriksa izin lokasi latar belakang. Bila belum ada, termux-location mengembalikan pesan Background location permission not granted dan meminta kalian membuka Settings, Apps, Termux:API, Permissions, Location, lalu memilih Allow all the time. Perintah termux-notification-list juga butuh akses notifikasi; tanpa akses itu, aplikasi menampilkan toast Please give Termux:API Notification Access dan membuka halaman pengaturannya.
Daftar Perintah Termux API yang Sering Dipakai
| Perintah | Fungsi | Contoh |
|---|---|---|
termux-battery-status | Status baterai dalam JSON: persen, status pengisian, suhu, sumber daya | termux-battery-status |
termux-notification | Menampilkan notifikasi sistem dengan judul (-t) dan isi (-c) | termux-notification -t "Backup" -c "Selesai" |
termux-toast | Popup teks singkat di layar; -s untuk durasi pendek | termux-toast -s "Selesai" |
termux-vibrate | Menggetarkan HP; -d durasi dalam milidetik (bawaan 1000) | termux-vibrate -d 500 |
termux-clipboard-get | Membaca teks di clipboard | termux-clipboard-get |
termux-clipboard-set | Mengisi clipboard dari argumen atau stdin | echo "halo" | termux-clipboard-set |
termux-location | Lokasi HP; -p gps/network/passive, -r once/last/updates | termux-location -p network -r last |
termux-camera-info | Informasi kamera yang ada di HP, termasuk ID-nya | termux-camera-info |
termux-camera-photo | Memotret dan menyimpan JPEG; -c memilih ID kamera | termux-camera-photo -c 0 foto.jpg |
termux-wifi-connectioninfo | Info koneksi Wi-Fi saat ini, seperti SSID, IP, RSSI, dan kecepatan tautan | termux-wifi-connectioninfo |
termux-torch | Menyalakan atau mematikan senter | termux-torch on |
termux-job-scheduler | Menjadwalkan skrip agar berjalan berkala | lihat contoh di bawah |
Sebagian besar perintah menampilkan bantuan dan daftar opsinya lewat -h, misalnya termux-notification -h. Daftar lengkap perintah Termux API ada di folder scripts repositori termux-api-package di GitHub; tiap file di sana adalah skrip satu perintah beserta teks bantuannya.
Contoh Skrip Termux API: Notifikasi Saat Baterai Hampir Habis
Skrip ini memakai tiga perintah Termux API sekaligus. Ia membaca status baterai, lalu memunculkan notifikasi dan getar singkat bila baterai sedang tidak diisi dan sisanya 20% atau kurang.
#!/data/data/com.termux/files/usr/bin/sh
BATAS=20
INFO=$(termux-battery-status)
PERSEN=$(echo "$INFO" | grep '"percentage"' | grep -o '[0-9][0-9]*')
STATUS=$(echo "$INFO" | grep '"status"' | cut -d '"' -f 4)
if [ -n "$PERSEN" ] && [ "$STATUS" = "DISCHARGING" ] && [ "$PERSEN" -le "$BATAS" ]; then
termux-notification --id baterai -t "Baterai tinggal $PERSEN%" -c "Colokkan charger sebelum HP mati."
termux-vibrate -d 500
fi
Baris grep mengambil angka dari baris percentage, dan cut mengambil teks status seperti DISCHARGING. Pengecekan status membuat notifikasi tidak muncul saat HP sedang dicas. Opsi --id baterai membuat notifikasi baru menimpa notifikasi lama dengan ID yang sama, jadi tidak menumpuk. Kalau susunan if dengan beberapa kondisi itu belum familier, lihat panduan if else di Bash.
Cara memasang dan menjadwalkannya:
- Buat filenya dengan
nano ~/baterai.sh, tempel skrip di atas, lalu simpan. - Jadikan executable dengan
chmod +x ~/baterai.sh. - Uji sekali dengan
~/baterai.sh. Supaya notifikasinya pasti muncul saat uji, ubah sementaraBATAS=20menjadiBATAS=100dan cabut charger. - Jadwalkan dengan
termux-job-scheduler -s $HOME/baterai.sh --job-id 1 --period-ms 900000 --battery-not-low false.
Angka 900000 milidetik sama dengan 15 menit, batas minimum periode sejak Android 7 menurut teks bantuan perintah ini. Opsi --battery-not-low bawaannya true, artinya tugas hanya berjalan saat baterai tidak lemah. Untuk skrip peringatan baterai, nilai itu harus diubah ke false, kalau tidak skripnya justru tidak jalan saat dibutuhkan. Cek jadwal yang aktif dengan termux-job-scheduler -p dan hapus dengan termux-job-scheduler --cancel --job-id 1.
Error yang Sering Muncul Saat Memakai Termux API
| Pesan | Penyebab | Solusi |
|---|---|---|
App not installed, INSTALL_FAILED_SHARED_USER_INCOMPATIBLE, signatures do not match previously installed version | Termux dan Termux:API berasal dari sumber berbeda | Hapus Termux dan semua pluginnya, pasang ulang dari satu sumber |
Perintah seperti termux-battery-status tidak dikenali (command not found) | Paket termux-api belum terpasang | pkg install termux-api |
Please grant the following permission to use this command: ... | Izin Android untuk perintah itu belum diberikan | Izinkan di dialog yang muncul atau di pengaturan aplikasi Termux:API |
Background location permission not granted | Android 11 ke atas, izin lokasi belum diset sepanjang waktu | Ubah izin lokasi Termux:API ke Allow all the time |
Cannot execute file: ... | Skrip yang dijadwalkan belum executable | chmod +x pada skrip tersebut |
No such file: ... | Path skrip di termux-job-scheduler -s salah | Pakai path lengkap, misalnya $HOME/baterai.sh |
Error di luar Termux API, seperti proses yang berhenti dengan pesan signal 9 atau paket yang tidak ditemukan saat pkg install, sudah kami bahas di 10 error pada Termux dan cara mengatasinya.
Artikel lain di Hosting & Server
Semua artikel Hosting & Server
6 menit baca
6 menit baca
8 menit baca