6

que estoy haciendo un sistema de alarma, pero tengo un problema cuando el teléfono está apagado .. La alarma no funciona ..AlarmManager cuando el teléfono está apagado - ANDROID

Soy la creación de alarma de la siguiente manera:

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 el teléfono está encendido ..

¿Qué puedo hacer yo?

¡Gracias!

+1

¿Qué esperas que haga? ¿Enciende el teléfono o activa la alarma tan pronto como se enciende el teléfono? –

+0

Quiero que suene la alarma incluso si el teléfono está apagado. –

+2

que no sería posible, su Linux y se comporta como su escritorio Linux en este asunto – nandeesh

Respuesta

6

Sí, el problema es que su aplicación no se está ejecutando cuando el teléfono se reinicia. Tendrá que registrar un BroadcastReceiver que pueda recibir el mensaje BOOT_COMPLETED para que reciba un mensaje cuando el teléfono se reinicie. Luego, en BroadcastReceiver puede reprogramar esas alarmas o lo que sea. Pero no creo que haya nada que puedas hacer para hacer su disparo de alarma cuando el teléfono está apagado .. (por ejemplo, hacer el giro del 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> 
+0

Gracias, lo sé .., pero ... ¿Cómo funciona la alarma de Android? No usa AlarmManager? –

+0

Sí, necesita usar AlarmManager. – LuxuryMode

+0

Sí, estoy usando AlarmManager ... pero ... ¿es imposible que suene una alarma cuando el teléfono está apagado? –

3

Las alarmas se borran cuando el teléfono apagado y reiniciado, pero usted puede comenzar su alarma usando 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);   
    } 

    } 

}

Cuestiones relacionadas