OnReceive no se llama al eliminar Widgets en la pantalla de bloqueo – Nexus 7
Quiero habilitar mi widget en la pantalla de bloqueo de Jelly Bean (Nexus 7, Android 4.2.1)
Mi problema es que onReceive()
nunca se llama cuando se quita un widget de la pantalla de bloqueo, creando tantos widgets de fantasmas como agregar / quitar.
- ¿Es posible crear el widget como Google Play Música en la pantalla de bloqueo?
- ¿Cómo puedo mostrar la notificación en la pantalla de bloqueo de Android?
- ¿Cómo probar widgets de pantalla bloqueada de Android en un emulador?
- ¿Cómo bloquear mediante programación la pantalla en Android?
- Desbloquear dispositivo, mostrar un texto y bloquearlo de nuevo.
Funciona bien en la pantalla de inicio (se elimina un widget, onReceive()
se llama, luego onDelete()
y si es el último widget onDisable()
), pero no funciona en la pantalla de bloqueo.
En la pantalla de bloqueo onReceive()
se llama APPWIDGET_ENABLED
, APPWIDGET_UPDATE
y APPWIDGET_UPDATE_OPTIONS
y eso es todo.
Para colocar un widget en la pantalla de bloqueo, sólo tienes que añadir android:widgetCategory="home_screen|keyguard"
a tu widget y probarlo en la pantalla de bloqueo
- ¿Cómo usar la pantalla de bloqueo de contraseña predeterminada en nuestra aplicación de Android?
- Creación de una aplicación de pantalla de bloqueo de Android.
- Actividad de Android sobre la pantalla de bloqueo predeterminada
- Cómo bloquear la pantalla del dispositivo Android en Android 4.4 y 5.0+
- Creación de LockScreen personalizado en android
- Android Lollipop - controles de música de pantalla de bloqueo
- Android Galaxy S4 - Actividad visible en la pantalla de bloqueo
- Obtención dinámica del nombre del paquete de pantalla de bloqueo de android
Tenía la misma experiencia con mi widget de pantalla de bloqueo Jelly Bean. OnReceive (), onDelete () y onDIsable () nunca se llaman y el widget mantiene la actualización incluso después de haberlo eliminado de la pantalla de bloqueo. El mismo comportamiento en mi Galaxy Nexus (4.2.1) y Nexus 7 (4.2.1). Los widgets de fantasmas desaparecen después de un reinicio.
Tal vez algo que ver con el comportamiento de los widgets de pantalla de bloqueo incorporados. El reloj vuelve a aparecer después de eliminarlo.
Espero que esto sea aclarado en los documentos algún tiempo.
Prueba éste
"Se debe exportar un AppWidgetProvider, de modo que el proceso de núcleo del SO que coordina los widgets de la aplicación (entre hosts y proveedores) pueda hablar con él. Por lo tanto, android:exported="false"
es inapropos.
Para ser honesto, no habría esperado nada para trabajar con el proveedor, en lugar de sólo algunos eventos. "
CommonsWare
https://stackoverflow.com/a/22719694/4683601
<receiver android:name=".AppWidgetBarProvider" android:exported="true" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget_bar_info" /> </receiver>
- Notificaciones push iOS y código nativo cliente-cliente de Android
- Android BroadcastReceiver: ejecutarlo en el proceso por defecto o en uno nuevo?