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:
- Android Geofencing - No intentos próximos?
- Android - ¿Por qué utilizar intenciones pendientes para geofences
- Cómo hacer referencia a una vista en una notificación personalizada
- Android: Apertura de actividad incorrecta del widget
- Android: la bandera de tareas no funciona para PendingIntent
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!
- Cómo quitar la notificación de la barra de notificación mediante programación en android?
- Dos botones con PendingIntents - Widget
- RecognizerIntent: cómo agregar un paquete a una intención pendiente
- ¿Por qué mi actividad siempre muestra el mismo conjunto de datos de una notificación de GCM?
- Cómo abortar BroadcastReceiver en android
- Android PendingIntent te lleva a una actividad ya existente?
- Mostrar diálogo utilizando PendingIntent
- Crea un nuevo intento pendiente cada vez en Android
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); } }
}