Termux-api
Qué es Termux:API
Ya comenté que Android tenía un terminal muy interesante con Termux. El problema es que estaba algo limitado ya que no tenía una integración real con el teléfono. Este problema está en vía de solución con Termux:API.
Las instrucciones de instalación son simples:
- Instalar la aplicación Termux:API desde Google Play
- Instalar el paquete
termux-api
desde la terminal de Termux.
Con esto ya se pueden crear scripts de shell que interaccionen con el teléfono.
Un ejemplo de uso
Estoy empezando a entrenar, y en mi rutina está incluida una caminata con cambios de ritmo: 5 minutos de calentamiento, 2 minutos a paso rápido, 2 a paso lento... hasta los 23 minutos en total.
Hay muchísimas apps para realizar este tipo de entrenamientos (en Runtastic se llama interval training), pero utilizarlas no tiene mérito ☺. Es mucho más divertido utilizar termux-vibrate
y termux-tts-speak
(ver funcion hablar
) en un script para conseguir este efecto.
# Solicitamos no entrar en deep sleep termux-wake-lock hablar "en 5 minutos se comenzará a andar rápido" esperar_y_hablar $((5*60)) "Ahora hay que andar rápido" esperar_y_hablar $((2*60)) "Ahora hay que andar lento" esperar_y_hablar $((2*60)) "Ahora hay que andar rápido" esperar_y_hablar $((2*60)) "Ahora hay que andar lento" esperar_y_hablar $((2*60)) "Ahora hay que andar rápido" esperar_y_hablar $((2*60)) "Ahora hay que andar lento" esperar_y_hablar $((2*60)) "Ahora hay que andar rápido" esperar_y_hablar $((2*60)) "Ahora hay que andar lento" esperar_y_hablar $((2*60)) "Ahora hay que andar rápido" esperar_y_hablar $((2*60)) "ya hemos acabado" # Ya podemos ir a deep sleep termux-wake-unlock
El listado anterior utiliza estas funciones de shell:
#!/bin/bash mensaje(){ echo $(date +%H:%M:%S) " -- " $* } hablar(){ mensaje "$1" (termux-vibrate; termux-tts-speak "$1")& } temporizador(){ # Temporizador con cuenta atrás for s in $(seq "$1" -10 9) do printf "%d " $s sleep 10 done printf "\n" } esperar_y_hablar(){ mensaje "Esperando $1 segundos para:" "$2" # El temporizador tiene problemas de precisión # Mejor lanzarlo asíncrono y esperar con sleep temporizador "$1"& sleep "$1" hablar "$2" }