Como puede adivinar, registro una alarma mediante AlarmManager. Y el BroadcastReceiver se llamará correctamente. Pero cuando llamó, la pantalla de mi teléfono todavía está bloqueada. Noto que la aplicación predeterminada de AlarmClock no es así. Entonces mi pregunta es, ¿cómo desbloquear la pantalla cuando se llama al BroadcastReceiver? (Desbloquear la pantalla puede hacer que el usuario opere mi actividad directamente) Gracias de antemano.cómo desbloquear la pantalla cuando se llama a BroadcastReceiver?
7
A
Respuesta
8
El código fuente de la alarma está en el código fuente de Android. AlarmClock se ha ido, pero ha sido reemplazado por DeskClock. Source code is here. Eché un vistazo al código muy rápido, y su receptor parece usar el KeyguardManager. Mira los documentos, que parece ser lo que quieres.
EDIT: voy a agregar sus conclusiones aquí. Este código debería hacer:
final Window win = getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
0
Abra la Actividad A que desea iniciar desde onReceive (...). Pega esto en onCreate() de dicho Actividad A
final Window win= getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
Asegúrese de que no está pegando antes setContentView (....) :)
Cuestiones relacionadas
- 1. cuando se llama a onSizeChanged()?
- 2. BroadcastReceiver cuando la aplicación no se está ejecutando
- 3. MPMoviePlayerPlaybackDidFinishNotification se llama cuando no
- 4. Cuando se llama __repr __()?
- 5. ¿Solo se llama a applicationWillResignActive cuando el iPhone se apaga?
- 6. Bloquear y desbloquear mediante programación la pantalla del iPhone
- 7. Cómo mostrar la actividad cuando la pantalla está bloqueada?
- 8. Response.Cookies se restablece cuando se llama a RedirectToAction
- 9. ¿Se llama a onCreate cuando se crea un objeto Activity?
- 10. Cómo pasar datos a BroadcastReceiver?
- 11. onRestoreInstanceState() no se llama cuando se espera
- 12. HttpsURLConnection se estanca cuando getInputStream() se llama
- 13. Desbloquear el teléfono Android programáticamente?
- 14. problema en Firefox cuando se llama a window.open
- 15. VLC muriendo cuando se llama desde Java
- 16. Cuando se invoca su BroadcastReceiver a través de una intención, ¿en qué proceso se ejecuta?
- 17. ¿Por qué navigationItem.titleView se alinea a la izquierda cuando se llama a showmodalviewcontroller?
- 18. viewDidLoad se llama, viewWillAppear no quede llama, vista no aparece en la pantalla
- 19. Android - Cómo iniciar la grabación de video automáticamente cuando se llama a la cámara
- 20. onActivityResult a veces no se llama cuando Sub-Activity termina
- 21. bloquear/desbloquear la orientación
- 22. taquigrafía cuando se llama a métodos genéricos en C#
- 23. CAEmitterLayer no representa cuando -renderInContext: de superlayer se llama
- 24. Cuando transactionManager no se llama "transactionManager"
- 25. ¿Por qué se llama onResume() cuando se inicia una actividad?
- 26. cuando se llama al evento "DOMNodeInserted"?
- 27. Cuando getView() en ArrayAdapter se llama
- 28. Las imágenes se pixelan cuando se toca la pantalla
- 29. ¿Cómo se usa getApplicationContext en la clase BroadcastReceiver?
- 30. ¿Cómo se llama cuando una interfaz "hereda" de otra?
Gracias, voy a leer el código fuente que introduzca aquí. De hecho, he buscado algunos códigos anteriormente, pero por alguna razón, no puedo obtener el código fuente predeterminado de AlarmClock. –
Sí, porque ha sido eliminado. El nuevo hotness es "DeskClock". En cualquier caso, solo eche un vistazo rápido a los documentos de KeyguardManager (me vinculé a él) y vea si eso es lo que necesita. – EboMike
Eché un vistazo al documento 'KeyguardManager', y como dice: "Clase que se puede usar para bloquear y desbloquear el teclado", supongo que eso es lo que necesito. Pero la API parece no muy directa. Necesito algo de tiempo para probarlo. Gracias de cualquier manera. –