9 votos

Enviar una notificación (o simplemente vibrar) al teléfono a través de ADB/shell

Me gustaría poder enviar algún tipo de notificación a mi Android utilizando un shell remoto script (SimpleSSHD corriendo como Root, así que básicamente lo mismo que un shell adb).

En un dispositivo iOS puedo utilizar los comandos cvibrate para que el dispositivo vibre y sbalert para mostrar una notificación vía SSH. Me gustaría hacer lo mismo, pero en Android.

Sería genial si pudiera ser una notificación real como cualquier otra aplicación invocaría, pero una manera de simplemente vibrar sería suficiente también si ambos no es posible en Android.

Esto parece una tarea muy sencilla, pero no he sido capaz de encontrar una solución...

2 votos

Para Termux existe el Termux-vibrate y el Termux-notificación paquete. No estoy seguro de cómo hacer esas llamadas disponibles en un sshd independiente. También es relevante: Android.stackexchange.com/questions/207411

0 votos

@Robert Mirando el código fuente de NotificationAPI.java y VibrateAPI.java - Esta es una solución basada en una aplicación (que me gustaría evitar) que sólo funciona con Termux, utilizando el Termux API aplicación para controlar las notificaciones/vibración/etc.

0 votos

@Robert - SIN EMBARGO: He intentado echo 200 > /sys/class/timed_output/vibrator/enable de los comentarios de la Q que enlazaste: ¡Y ha funcionado! Me gustaría mantener la pregunta abierta porque preferiría notificaciones o algún tipo de alerta/pop-up en la pantalla también, pero si nada más es posible sin la aplicación Termux + API que sería lo suficientemente bueno de una respuesta para mí. (Nota para otros: Ese comando requiere Root (al menos a través de SSH), que para mí no es un problema sin embargo).

9voto

MB34 Puntos 483

Utiliza la notificación de cmd:

cmd notification post [flags] <tag> <text>

Si eres Root la notificación no se mostrará:

su -lp 2000 -c "cmd notification post -S bigtext -t 'Title' 'Tag' 'Multiline text'"

1 votos

Muy bien. Pude publicar la notificación con Root. Sin embargo, seguía apareciendo como publicada desde Shell. Android 10 en un OnePlus 6 usando Termux.

0 votos

Lo que es aún más molesto para mí: No he encontrado ninguna manera de enviar sin activar el sonido de notificación

2 votos

¿En qué versiones de Android funciona/debería funcionar?

6voto

Firelord Puntos 161

Puede configurar una Tarea en Tasker que puede invocar desde la línea de comandos. La tarea puede ser configurada con acciones de su gusto en combinación, como mostrar una notificación y vibrar con el patrón XYZ . Cuando configure una tarea en Tasker, configure la acción así: Alerta → Notificar

Rellena los campos como quieras. Asegúrese de activar Permitir el acceso externo en Preferencias → Varios, accesible desde la línea de tres puntos en el borde derecho de la barra superior de la pantalla de inicio de Tasker.

En cuanto a la invocación de la tarea desde la línea de comandos, ejecutar:

su -c am broadcast -a net.dinglisch.android.tasker.ACTION_TASK --es "task_name" "YOUR_TASK"

Sustituya YOUR_TASK por el nombre de su tarea.

Consejo: puedes configurar Tasker para que muestre el texto que desees en la notificación con un poco más de trucos. Configura una tarea para vigilar los cambios de un archivo y asigna una acción para cambiar el valor de una variable de Tasker al contenido de ese archivo. En tu mencionada tarea de vibración/notificación, al rellenar el campo de "texto", asigna esa variable local en su lugar. Así, la próxima vez, al invocar la tarea, cambie el contenido del archivo por un texto de notificación personalizado antes de enviar ese comando.

Sugerencia2: también es posible enviar una variable directamente a una tarea usando la línea de comandos, pero no tengo mucha experiencia con ello así que tienes que preguntar al tío web.

0 votos

Gracias por la respuesta, +1 especialmente por los consejos. Preferiría una solución que no requiera una aplicación externa. Parece que no es posible, pero probablemente voy a ir con notify4scripts ya que parece más ligero y más fácil de personalizar.

1 votos

Claro, sólo quería dar una respuesta alternativa :)

1 votos

@confetti cada notificación es enviada por una app, por lo que no hay forma de crear otra cosa. Las aplicaciones del sistema no proporcionan un método para enviar notificaciones desde la línea de comandos, por lo que se necesita una aplicación de terceros. Una vez intenté crear algunas superficies/ventanas directamente con SurfaceFlinger, pero debido a la falta de conocimiento no pude averiguar dónde proceder. No creo que crear notificaciones de forma nativa sin involucrar el framework Java de Android sea una solución factible (si es que es posible). Hay un batiburrillo de APIs e IPCs, a nivel de código cerrado también.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X