10 votos

Encendido del dispositivo Android con detector de movimiento (¿dispositivo externo?)

Problema

Estoy buscando un detector de movimiento que se pueda configurar para que despierte una tablet Android (4.3) rooteada y encienda la pantalla cuando alguien pase cerca de ella en un radio de quizás 2-3m.

Ideas

Definitivamente estoy dispuesto a conseguir un dispositivo externo para esto e invertir una cantidad (razonable) de dinero, sólo tendría que ser uno que pueda conectar de alguna manera a la tablet.

¿Hay quizás algún detector de proximidad del ámbito de la domótica con una calidad de detección decente (buen ángulo y distancia configurable) que pueda enviar notificaciones push de Android? Soy capaz de escribir algo de código desde cero si es necesario, pero soy muy despistado e inexperto en el campo del hardware, así que no sabría sostener un soldador, por ejemplo. ;)

Antecedentes

La idea aquí es transformar una vieja tablet en una especie de pantalla de tablero estacionaria, por lo que no me preocupa especialmente el desgaste de la batería (ya está al final de su vida útil y a partir de ahora se utilizará con el cable de alimentación enchufado hasta que muera) o el uso intenso (a menos que estemos hablando de un 100% de la CPU 24/7, lo que probablemente la mataría en pocos días).

Investigación previa

He investigado un poco si esto se podría hacer con los sensores existentes en el dispositivo y creo que no es posible.

El problema de usar el sensor de proximidad es que realmente sólo devuelve si algo (se supone que es tu oído mientras estás en una llamada) está justo al lado (a unos pocos centímetros). Pero estoy buscando algo en el área de 2-3m.

La otra idea sería la cámara frontal, pero el problema parece ser que a) la cámara en muchos dispositivos se apaga automáticamente cuando la pantalla está apagada y b) sólo las apps en primer plano pueden acceder a la cámara, pero yo quiero que la tablet muestre otra app al detectarla.

He echado un vistazo rápido en relación con el despertar de la pantalla en respuesta a las notificaciones push y que no parece demasiado difícil de usar el API de PowerManager . No estoy seguro de la rapidez con la que el dispositivo respondería a una pulsación cuando está en sueño profundo, pero ese es un problema secundario.

0 votos

¿Por qué no usar Bluetooth o NFC usando un script? He visto una prueba de concepto similar en otro lugar, utilizando bluetooth en el PC, y un dispositivo bluetooth que se lleva alrededor del cuello, dejar el escritorio del PC y el PC se bloquea, llegar de nuevo en las proximidades del PC, el PC se desbloquea.

0 votos

@t0mm13b La verdad es que no quiero ponerme nada. Esto pretende ser una configuración permanente y no quiero llevar un dispositivo BT el resto de mi vida. ;) El NFC haría que esto dejara de ser un manos libres, cosa que también preferiría que fuera. Pero que sigan llegando, ese es el tipo de ideas creativas que esperaba :)

0 votos

En las aplicaciones está la "domótica" y el control de alarmas del tipo de apps y hardware. Esa podría ser una forma de conseguir que un detector de infrarrojos humano envíe información al dispositivo.

0voto

Hrafn Puntos 121

Tal vez quiera consultar Wimoto . Son pequeños y baratos sensores bluetooth que vienen en varios sabores (temperatura, detección de movimiento, detección de líquidos, etc). Dicen que hay una aplicación para Android, y que va a haber un SDK liberado en un futuro próximo para ello.

Por otra parte, si quieres algo más sencillo (y tu tablet tiene una cámara frontal) podrías utilizar simplemente una aplicación. Por ejemplo (sólo después de una búsqueda rápida por lo que no han utilizado) Disparador de cámara .

Espero que esto ayude.

0 votos

Wimoto suena como el tipo de dispositivos en los que estaba pensando, pero no pude encontrar un sensor de movimiento. ¿Tienen uno?

0 votos

Camera Trigger tiene los mismos problemas mencionados anteriormente, no funciona con la pantalla apagada o cuando se tiene otra aplicación en primer plano.

0 votos

Sí, lo llaman Wimoto Sentry. También me he encontrado con Twine que también es un micro sensor con un par de características

0voto

hheimbuerger Puntos 266

El único sensor de movimiento asequible y razonablemente accesible que pude encontrar es el Belkin WeMo Motion .

Ian McCracken creó un SDK inoficial para el WeMo llamado Ouimeaux ( docs , PyPi ).

Mi plan actual es escribir una pequeña aplicación que se ejecute en una Raspberry Pi que utilice Ouimeaux para responder a una señal del WeMo Motion y enviar una notificación push al dispositivo Android. Y luego una aplicación Android aún más simple que responda a la notificación push y despierte el dispositivo y encienda la pantalla. (Esto último también podría hacerse con Tasker en su lugar).

Como segundo paso, las partes relevantes de Ouimeaux podrían reescribirse en Java y entonces sería posible conectarse directamente desde la aplicación al WeMo, haciendo superflua la Raspberry Pi.

Se aceptan sugerencias de mejora, por supuesto. En particular, si usted sabe una manera existente para despertar una pantalla de Android de un Python / Shell script / de otro modo desencadenar la notificación push. Eso suena demasiado trivial para requerir escribir una nueva aplicación.

0 votos

Si desactivas el bloqueo del dispositivo, puedes crear una pequeña aplicación que tome la entrada para la acción, y utilice un ProcessBuilder de Java para ejecutar un comando shell para un evento clave, por ejemplo 'shell input keyevent 26' (pulsación del botón de encendido), que en teoría debería funcionar. Actualmente estoy ejecutando un comando shell después de una pulsación de botón, para ejecutar la nueva función 'screenrecord' en Android KitKat, en segundo plano para una aplicación que estoy creando para poder verificar que la ejecución de comandos shell de esta manera funciona.

0 votos

@Hrafn No lo he entendido bien: ¿qué intención hay de hacer eso?

0 votos

Usted preguntaba por las posibles formas de despertar la pantalla. Si puedes conseguir algún tipo de entrada, puedes crear un proceso Java (como parte de un programa Android que se esté ejecutando en segundo plano) y hacer que se ejecute al pulsar el botón de encendido en la carcasa del dispositivo. Eso debería, si el dispositivo está configurado para no bloquearse, despertar la pantalla.

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