AlarmManager cuando el teléfono está apagado – ANDROID
Estoy haciendo un sistema de alarma pero tengo un problema cuando el teléfono está apagado .. La alarma no funciona ..
Estoy fijando la alarma de la siguiente manera:
- Intento pendiente con el indicador ONE_SHOT
- RecognizerIntent: cómo agregar un paquete a una intención pendiente
- Programar más de una actividad pendiente en la misma actividad con AlarmManager
- ¿Cómo funciona AlarmManager.AlarmClockInfo en PendingIntent?
- ¿Es necesario usar FLAG_ACTIVITY_NEW_TASK en la opción PendingIntent de una notificación?
public void doIntents(Context context, long milis, Tratam trat){ cal=Calendar.getInstance(); alarmManager = (AlarmManager) context.getSystemService(Service.ALARM_SERVICE); cal.setTimeInMillis(milis); Intent intent = new Intent(context, OnAlarmReceiver.class); pendingIntent = PendingIntent.getBroadcast(context, trat.getId(), intent, PendingIntent.FLAG_UPDATE_CURRENT); alarmManager.set(AlarmManager.RTC_WAKEUP,milis ,pendingIntent); }
La alarma funciona bien cuando se enciende el teléfono.
¿Que puedo hacer?
¡Gracias!
- AlarmManager, BroadcastReceiver y el servicio no funciona
- Cómo recibir notificaciones cuando se notifica una notificación
- No puedo obtener los extras de mi intención?
- Creación de una notificación en un momento determinado mediante el Administrador de alarmas
- Cómo utilizar FLAG_ACTIVITY_SINGLE_TOP y varias tareas con PendingIntents
- Cómo abrir la página de fragmentos, cuando se presiona una notificación en android
- Iniciar la aplicación sólo si no está en ejecución
- Obtener la lista de PendingIntents activa en AlarmManager
Sí, el problema es que su aplicación no se está ejecutando cuando el teléfono se reinicia. Tendrás que registrar un BroadcastReceiver que puede recibir el mensaje BOOT_COMPLETED para que reciba un mensaje cuando reinicie el teléfono. Entonces en el BroadcastReceiver usted puede reprogramar esas alarmas o lo que sea. Pero no creo que haya nada que puedas hacer para activar la alarma cuando el teléfono está apagado. (Por ejemplo, activar el teléfono)
<receiver android:name="MyBootReceiver" android:enabled="true" android:exported="true" android:label="BootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"></action> </intent-filter> </receiver>
Las alarmas se borran cuando el teléfono se apaga y se reinicia, pero puede iniciar su alarma con BroadcastReceiver que puede recibir el BOOT_COMPLETED
In Manifest.xml: <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <application ...> <receiver android:name="com.example.receiver.AlarmMonitorReceiver" android:enabled="true" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> </application>
Java:
public class AlarmMonitorReceiver extends BroadcastReceiver{ public void onReceive(Context context,Intent intent) { if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) { AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); Intent intentAlarm = new Intent(context, ExampleReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intentAlarm, 0); Calendar time = Calendar.getInstance(); time.setTimeInMillis(System.currentTimeMillis()); time.add(Calendar.SECOND, 10); alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(),10000,pendingIntent); } }
}