====== Termux:API ======
**Termux:API** es un añadido / extensión de [[..:termux|Termux]] que expone funcionalidades del dispositivo como una API para programas en línea de comandos.
* [[https://github.com/termux/termux-api|Repositorio de código]]
* [[https://wiki.termux.com/wiki/Termux:API|Wiki oficial]]
===== Instalación =====
Hay que instalar la aplicación para Android **Termux:API** (a través de [[https://f-droid.org/en/packages/com.termux.api/|F-droid]]) y también el paquete **termux-api** en Termux:
pkg install termux-api
===== Comandos =====
Tras la instalación, tendremos disponibles los siguientes comandos:
* ''termux-battery-status'': obtiene el estado de la batería del dispositivo.
* ''termux-brightness'': establece el brillo del dispositivo (entre 0 y 255)
* ''termux-call-log'': lista el historial de llamadas.
* ''termux-camera-info'': obtiene información sobre las cámaras del dispositivo.
* ''termux-camera-photo'': hace una foto y la guarda en un fichero JPEG.
* ''termux-clipboard-get'': obtiene el texto del portapapeles.
* ''termux-clipboard-set'': modifica el texto del portapapeles.
* ''termux-contact-list'': lista los contactos.
* ''termux-dialog'': muestra el diágolo de introducción de texto.
* ''termux-download'': descarga un recurso utilizando el gestor de descargas del sistema
* ''termux-fingerprint'': utiliza el sensor de huella para autenticación.
* ''termux-infrared-frequencies'': obtiene las frecuencias soportadas por el transmisor de infrarrojos.
* ''termux-infrared-transmit'': transmite un patrón de infrarrojos.
* ''termux-job-scheduler'': programa un script de Termux para ejecutar más tarde o periódicamente.
* ''termux-location'': obtiene la ubicación del dispositivo.
* ''termux-media-player'': reproduce archivos multimedia.
* ''termux-media-scan'': escanea multimedia. Hace cambios que son visibles en la galería.
* ''termux-microphone-record'': graba utilizando el micrófono del dispositivo.
* ''termux-notification'': muestra una notificación de sistema.
* ''termux-notification-remove'': elimina una notificación mostrada con ''termux-notification''
* ''termux-sensor'': obtiene información de los diferentes sensores del dispositivo.
* ''termux-share'': comparte un archivo pasado como argumento.
* ''termux-sms-list'': lista los mensajes SMS.
* ''termux-sms-send'': envía un SMS a un número especificado.
* ''termux-storage-get'': solicita un fichero y lo manda al archivo especificado.
* ''termux-telephony-call'': realiza una llamada al número especificado.
* ''termux-telephony-cellinfo'': obtiene información sobre las células al alcance del dispositivo.
* ''termux-telephony-deviceinfo'': obtiene información sobre el teléfono.
* ''termux-toast'': muestra una notificación.
* ''termux-torch'': enciende (''on'') o apaga (''off'') la linterna.
* ''termux-tts-engines'': obtiene información sobre los motores de transcripción a audio (//text-to-speech//) disponibles.
* ''termux-tts-speak'': dicta un texto con el motor de transcripción del sistema.
* ''termux-usb'': lista o accede a dispositivos USB.
* ''termux-vibrate'': hace vibrar el dispositivo.
* ''termux-volume'': cambia el volumen del audio.
* ''termux-wallpaper'': cambia el fondo de pantalla del dispositivo.
* ''termux-wifi-connectioninfo'': muestra información sobre la conexión Wi-Fi actual.
* ''termux-wifi-enable'': activa/desactiva la red Wi-Fi.
* ''termux-wifi-scaninfo'': obtiene información del último escaneo de redes Wi-Fi.
===== Casos prácticos =====
==== Notificaciones personalizadas ====
Mediante el comando ''termux-notification'' podemos enviar notificaciones al terminal Android que aparecerán en el área de notificaciones.
termux-notification --title "Script terminado" --content "Todo OK"
Puede ser útil para scripts largos, copias de seguridad o descargas.
==== Alertar del nivel de batería ====
Utilizando el comando ''termux-battery-status'' podríamos crear el siguiente script:
level=$(termux-battery-status | jq '.percentage')
if [ "$level" -lt 15 ]; then
termux-notification --title "Batería baja" --content "Queda menos del 15%"
fi
Necesario instalar el paquete ''jq'': ''pkg jq''.
==== Hacer fotos sigilosamente ====
Utilizando el comando ''termux-camera-photo'' podemos hacer fotos con la cámara trasera incluso con el móvil bloqueado:
termux-camera-photo foto.jpg
==== Grabar audio sigilosamente ====
Gracias al comando ''termux-microphone-record''.
Por ejemplo, para grabar el audio que recoja el dispositivo durante 10 segundos:
termux-microphone-record -f audio.mp3 -l 10
Si queremos poner a grabar sin límite:
termux-microphone-record -f nombre-fichero -l 0
Para detener la grabación:
termux-microphone-record -q
==== Controlar volumen ====
Gracias al comando ''termux-volume'' podremos gestionar el volumen de los diferentes //streams// disponibles:
* alarm
* notification
* music
* ring
* system
* call
Si lo lanzamos sin argumentos, podremos ver todos los //streams// disponibles, cuál es su volumen actual y cuál el máximo:
termux-volume
Para poner el volumen de la música al 0:
termux-volume music 0
==== Sensores del dispositivo ====
Gracias al comando ''termux-sensor'' podemos obtener información sobre el tipo de sensores del dispositivo e información en tiempo real.
Para ver los sensores que tiene disponibles nuestro dispositivo:
termux-sensor -l
==== Texto a voz (TTS) ====
Gracias al comando ''termux-tts-speak'' podemos pasar cualquier texto a voz que puede ser útil como alerta auditiva o asistentes personales:
termux-tts-speak "Copia de seguridad completada"