10 votos

Encontrar en la red si se activa el dispositivo Android

Tengo una nVidia Shield equipo de TV, que se está ejecutando Android TV.

Con el fin de integrar esto en mi configuración de cine en casa, tengo que ser capaz de determinar si el dispositivo está activo o dormir.

Para mis otros dispositivos acabo de usar el comando ping para determinar esto. Sin embargo, desde los dispositivos Android son básicamente siempre, esto no funciona en este caso.

Una manera, por supuesto, sería escribir una aplicación sencilla, que abre un puerto TCP cuando el dispositivo está activo y se cierra cuando está durmiendo.

Mi pregunta es si hay una manera más sencilla, tal vez una aplicación existente o de alguna otra manera de hacer esto sin el desarrollo de mi propia app para ello.

1voto

Firelord Puntos 161

Parece que nVidia Shield Android TV viene con Android 5.1.1 y un Malvavisco actualización está disponible desde el mes de diciembre solamente. Estoy asumiendo que Android 5.1.1 es la versión instalada en su dispositivo.

Sistema de consulta de los servicios de

Habilitar el en modo inalámbrico en el dispositivo. Siga la guía oficial o esta respuesta de Izzy para obtener instrucciones, si es necesario.

Usted puede encontrar el estado de Android - sueño o despierto - desde el volcado de los distintos servicios del sistema.

  • Servicio: Potencia

    adb shell dumpsys power
    

    La búsqueda de las cuerdas mWakefulness y/o Display Power: state. Ambos le dan el estatus que usted necesita.

    Ejemplo:

    adb shell 'dumpsys power | grep -e "mWakefulness=" -e "Display Power"'
    

    me da

    mWakefulness=Asleep
    Display Power: state=OFF
    
  • Servicio: Ventana De

    adb shell dumpsys window
    

    La búsqueda de las cuerdas mAwake=true y/o mScreenOnEarly=true y/o mScreenOnFully=true

    Ejemplo:

    adb shell 'dumpsys window | grep -e "mAwake=" -e "mScreenOnEarly" -e "mScreenOnFully"'
    

    me da

    mAwake=true
    mScreenOnEarly=true mScreenOnFully=true
    
  • Servicio: Mostrar

    adb shell dumpsys display
    

    La búsqueda de las cuerdas mState=OFF y/o mScreenState=OFF.

    Ejemplo:

    adb shell 'dumpsys display | grep -e "mState=" -e "mScreenState"'
    

    me da

    mState=OFF
    mScreenState=OFF
    

El Uso De La Automatización

Si ninguno de los servicios del sistema mencionado en el anterior método ha funcionado para usted, la configuración de de la aplicación, tales como Tasker o MacroDroid o Automatizar.

Ahora tendríamos el uso de la automatización para escribir el estado de Android en un archivo, tales como Dormir para el modo de sueño y Despierto cuando está despierto.

Tasker,

  • Perfil: Evento → Pantalla → Pantalla Apagada
  • Tarea: (Acciones) : Archivo → copiar Archivo → seleccione un archivo de texto para escribir en, escriba Dormir y desmarque la opción Añadir nueva Línea
  • Perfil: Evento → Pantalla → Pantalla En
  • Tarea: (Acciones) : Archivo → copiar Archivo → seleccione un archivo de texto para escribir en, escriba Despierto y desmarque la opción Añadir nueva Línea

MacroDroid

Android, lamentablemente no viene con echo o printf de utilidad, Si el dispositivo tiene root a continuación, puede instalar busybox y estar en paz. Si no, descargar busybox binario, establecer permisos de ejecución y empuje en /data/local/tmp uso de adb push. Otra forma para que un dispositivo sin root es mantener tres archivos, uno para el estado, uno con el texto de Dormir y de y, el último, con el texto Despierto. Siempre que la pantalla no enciende/apaga, copia el segundo/tercer archivo en primera.

MacriDroid también requiere de un plugin, tales como la Configuración de seguridad para ejecutar comandos.

  • Trigger: Pantalla De Encendido/Apagado → Apagado De Pantalla
  • Acción: La Configuración De Seguridad → Acciones → Ejecutar El Comando:

    • Comando: echo Sleeping > FILE_PATH
    • Nombre de comando: apagado de Pantalla
  • Trigger: Pantalla De Encendido/Apagado → Pantalla En
  • Acción: La Configuración De Seguridad → Acciones → Ejecutar El Comando:

    • Comando: echo Awake > FILE_PATH
    • Nombre de comando: apagado de Pantalla

Para un no-root de Android, echo debe ser reemplazado con ./data/local/tmp/busybox echo. De lo contrario, realice una operación de copia mediante el comando cp SOURCE DESTINATION.

Automatizar

Su flujo más o menos este aspecto de la imagen

(Haga clic en la imagen para ampliar)

IMG:

Su necesidad de crear dos flujos, uno para dormir y otro para los despiertos. El segundo bloque en el flujo se denomina Difusión de recibir y se pueden encontrar en las Aplicaciones. El tercer bloque se denomina escritura de un Archivo de texto y se pueden encontrar en Archivo Y Almacenamiento.

Ahora usted puede comprobar el contenido de ese archivo usando adb en modo inalámbrico o mediante SSH (requiere de un servidor SSH en Android; ejecutar el servidor en todas las interfaces y no se unen a una sola interfaz.)


Hay otra posibilidad, como tender la automatización de la aplicación de subir el archivo a un servidor local o remoto, de modo que usted puede consultar esa servidor en lugar de Android para saber el estado.


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