Quiero descubrir cómo detectar cuando el teléfono se despierta de estar en el modo de pantalla negra y escribir un controlador para ese evento. ¿Es eso posible? Parece que esto sería algo que un Broadcast Receiver debería manejar? ¿O hay una forma mejor o más adecuada?¿Es posible escribir un receptor de emisión Android que detecta cuándo se activa el teléfono?
Respuesta
Si usted tiene un servicio que activa que puede atrapar a estos eventos con
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// do something
}
}, new IntentFilter(Intent.ACTION_SCREEN_ON));
Sin embargo, esto se basa en tener un servicio perpetuamente en ejecución que recientemente he aprendido no se recomienda porque es frágil (el sistema operativo le gusta ciérrelos) y usa recursos permanentemente.
Decepcionante, parece que no es posible tener un receptor en su manifiesto que intercepte eventos SCREEN_ON.
Esto ha llegado hasta hace muy poco tiempo:
android.intent.action.SCREEN_ON doesn't work as a receiver intent filter
también
Android - how to receive broadcast intents ACTION_SCREEN_ON/OFF?
Estás justo en el receptor de radiodifusión. Puede escuchar los eventos de difusión SCREEN_ON y SCREEN_OFF.
También podría tener un receptor de difusión que capte el intento de transmisión USER_PRESENT para cuando el usuario haya desbloqueado el dispositivo. Naturalmente, algunas versiones de Honeycomb no honran esto, pero para todas las versiones de Android no cerebralmente letales (2.xy 4.x), funciona muy bien.
Esto también funciona si se registra desde AndroidManifest.xml. – bk138
- 1. Android-receptor de la emisión y filtro Intención
- 2. ¿Es posible escribir un sistema operativo para un teléfono móvil?
- 3. Cómo deshabilitar Keyguard y mostrar una actividad al usuario cuando se activa el receptor de SCREEN_ON?
- 4. ¿Cuándo se activa el Activador de Ninject?
- 5. ¿es posible instalar java fx en un teléfono Android?
- 6. ¿Es posible ocultar/Cambiar el número de teléfono del remitente al enviar sms en Android?
- 7. DownloadManager.ACTION_DOWNLOAD_COMPLETE emisión receptor que recibe el mismo id descarga más de una vez con diferentes estados de descarga en Android
- 8. receptor de difusión Android no funciona
- 9. ¿Cuándo document.readystate == complete es igual que cuando se activa un incendio?
- 10. Android: detecta el evento de desbloqueo del teléfono, no la pantalla en
- 11. Detecta el estado de dos tarjetas SIM en un teléfono Android dual-SIM
- 12. ¿Es posible escribir un cliente de Skype?
- 13. Android: Detecta una unidad flash USB conectada
- 14. ¿Cuándo se activa realmente PreApplicationStartMethod para ejecutarse?
- 15. ¿Cómo hacer que suene el teléfono Android?
- 16. Android ¿Cómo se detecta qué contacto cambió?
- 17. ¿Detecta si el usuario interactúa con el teléfono?
- 18. ¿Qué sucede con las alarmas de repetición AlarmManager no entregadas cuando el teléfono se activa?
- 19. El teléfono Android se reinicia al desinstalar
- 20. Android: ¿detecta el brillo (cantidad de luz) en el entorno del teléfono usando la cámara?
- 21. ¿Cómo crear programáticamente una conexión A2DP o cómo puedo emular un teléfono Android para que sea un receptor A2DP?
- 22. ¿Detecta cuándo se ejecuta el destructor debido a una excepción?
- 23. Android - ¿Detecta el teclado visible?
- 24. Cuándo escribir un iterador?
- 25. ¿Es posible escribir código para escribir código?
- 26. ¿Es posible crear un HashMap que sea Parcelable en Android?
- 27. ¿Cómo escribir el atributo que detecta excepciones y elimina stacktrace?
- 28. ¿Es posible ejecutar un binario de brazo nativo en un teléfono Android no rooteado?
- 29. ¿Cómo se puede detectar el lanzamiento de una aplicación Android?
- 30. ¿Es posible escribir un firewall en python?
ah gracias para que detecte la pantalla y me permita manejarla correctamente ¿no? Estaba leyendo su hilo y no recomienda tener un servicio en segundo plano en funcionamiento y esperando que el teléfono se active. ¿Por qué? ¿Cuál es el inconveniente y hay alguna forma de evitarlo? ¿No está ejecutando servicios en segundo plano cómo se detectan eventos como este? – Joe
En este artículo se analiza el problema del servicio en segundo plano - http://www.androidguys.com/2010/03/29/code-pollution-background-control/ –
el problema con esta respuesta, cualquier razón por la que funciona, se debe a que su actividad no recibe intenciones cuando el teléfono está dormido. para que pueda registrar screen_on en su actividad, pero nunca lo obtendrá. –