6

que je fais un système d'alarme, mais j'ai un problème lorsque le téléphone est éteint .. L'alarme ne fonctionne pas ..AlarmManager lorsque le téléphone est éteint - ANDROID

J'installe de alarme comme suit:

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); 

} 

l'alarme fonctionne Ok lorsque le téléphone est allumé ..

que puis-je faire?

Merci!

+1

Qu'attendez-vous qu'il fasse? Allumer le téléphone ou déclencher l'alarme dès que le téléphone est rallumé? –

+0

Je veux que l'alarme sonne même si le téléphone est éteint. –

+2

ce qui ne serait pas possible, son linux et il se comporte comme votre bureau linux dans cette affaire – nandeesh

Répondre

6

Oui, le problème est que votre application ne fonctionne pas lorsque le téléphone redémarre. Vous devez enregistrer un BroadcastReceiver qui peut recevoir le message BOOT_COMPLETED afin qu'il reçoive un message lorsque le téléphone redémarre. Ensuite, dans BroadcastReceiver, vous pouvez replanifier ces alarmes ou quoi que ce soit. Mais je ne pense pas qu'il y ait tout ce que vous pouvez faire faire votre déclencheur d'alarme lorsque le téléphone est éteint .. (par exemple, faire le tour du téléphone)

<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

Merci, je le sais .., mais .. Comment fonctionne l'alarme Android? N'utilise pas AlarmManager? –

+0

Oui, vous devez utiliser AlarmManager. – LuxuryMode

+0

Oui J'utilise AlarmManager .. mais .. est impossible qu'une alarme retentisse lorsque le téléphone est éteint? –

3

Les alarmes sont effacées lorsque le téléphone éteint et redémarré, mais vous pouvez commencer votre alarme à l'aide BroadcastReceiver qui peut recevoir le 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);   
    } 

    } 

}

Questions connexes