es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo mostrar un pop-up similar al de Truecaller en un momento específico del día, como una alarma, utilizando Flutter?

Intenté resolver esto usando androidalarmmanagerplus para programar el evento en segundo plano en un momento específico. Y hasta ahora eso funcionó bien, pero para mostrar el pop-up como Truecaller, utilicé el paquete systemalert_window de pub.dev para mostrar el pop-up.
Mientras la aplicación esté abierta en segundo plano, el pop-up funciona y se muestra como una superposición. Pero cuando el evento de alarma se activa cuando la aplicación está cerrada, aparece el mensaje “tu aplicación se ha bloqueado”.

En resumen: El systemalertwindow cuando se llama mientras la aplicación está abierta, funciona. Pero cuando se llama cuando la aplicación está cerrada, se bloquea.

Por favor, alguien ayúdeme con una solución o una forma de resolver esto.

Versión de Android utilizada para probar: 11 y 12

Registros de bloqueo:


01-10 01:07:54.195 3397 3397 E AndroidRuntime: en dev.fluttercommunity.plus.androidalarmmanager.AlarmService.onCreate(AlarmService.java:351)
01-10 01:07:54.195 3397 3397 E AndroidRuntime: en android.app.ActivityThread.handleCreateService(ActivityThread.java:4307)
01-10 01:07:54.195 3397 3397 E AndroidRuntime: ... 8 más
01-10 01:07:54.201 2225 3489 I DropBoxManagerService: agregar etiqueta=data_app_crash isTagEnabled=true flags=0x2 01-10
01:07:54.211 2225 2324 W BroadcastQueue: La ejecución en segundo plano no está permitida: recibiendo Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10 (tiene extras) } en com.google.android.gms/.stats.service.DropBoxEntryAddedReceiver
01-10 01:07:54.212 2225 2324 W BroadcastQueue: La ejecución en segundo plano no está permitida: recibiendo Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10 (tiene extras) } en com.google.android.gms/.chimera.GmsIntentOperationService$PersistentTrustedReceiver

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Descripción del Problema

    El problema es que al usar el paquete system_alert_window para mostrar una ventana emergente mientras la aplicación está cerrada, esta se bloquea. Sin embargo, cuando la aplicación está abierta en segundo plano, la ventana emergente funciona y se muestra como una superposición. Los registros de errores sugieren que el problema está relacionado con la creación del AlarmService en la dependencia android_alarm_manager_plus.

    Posible Solución

    Para solucionar este problema, puedes intentar seguir los siguientes pasos:

    1. Actualiza la dependencia android_alarm_manager_plus a la última versión, ya que puede contener una solución para el problema que estás enfrentando. Puedes actualizarla ejecutando flutter pub upgrade android_alarm_manager_plus.
    2. Cambia la minSdkVersion en el archivo android/app/build.gradle a 21 o superior, ya que system_alert_window requiere una versión mínima de SDK de 21 para funcionar correctamente con Android.
    3. Asegúrate de haber declarado los permisos necesarios en el archivo AndroidManifest.xml, incluyendo el permiso SYSTEM_ALERT_WINDOW necesario para que funcione el paquete system_alert_window.
    4. Si el problema persiste, intenta utilizar un paquete o enfoque diferente para lograr la funcionalidad deseada.

    Conclusión

    En resumen, el problema parece estar relacionado con el uso de AlarmService con system_alert_window mientras la aplicación está cerrada. Algunas posibles soluciones para resolver este problema son intentar actualizar la dependencia android_alarm_manager_plus, cambiar la minSdkVersion y asegurarse de que se declaren los permisos necesarios en el archivo AndroidManifest.xml. Si ninguna de estas soluciones funciona, probar un paquete o enfoque diferente puede ser la mejor opción.

Comments are closed.