j'ai un public class AlarmReceiver extends BroadcastReceiver
et une activité avec la partie suivante dans son onCreate
BroadcastReceiver ne déclenche pas
Intent intent = new Intent(this, AlarmReceiver.class);
pintent = PendingIntent.getBroadcast(this, 0, intent, 0);
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
alarm.setExact(AlarmManager.RTC, Calendar.getInstance().getTimeInMillis() + 5000, pintent);
} else {
alarm.set(AlarmManager.RTC, Calendar.getInstance().getTimeInMillis()+5000, pintent);
}
Ainsi, la méthode onReceive
de mes AlarmReceiver
devrait être appelé après 5 secondes ce code est exécuté, devrait-il pas ? Mais ce n'est pas le cas, j'ai attendu quelques minutes mais rien ne se passe. Et oui, j'ai ajouté <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
à mon manifeste. (Mon téléphone exécute setExact
)
Avez-vous le récepteur figurant dans le manifeste? De plus, vous n'avez pas besoin de l'autorisation 'SET_ALARM' pour cela. –
ah bien sûr ... oublié cela. Dommage que cela ne donne pas une erreur comme quand j'essaye de démarrer une activité qui n'est pas listée là. Pourquoi n'ai-je pas besoin de la permission? À quoi sert-il alors? – Ginso
L'autorisation 'SET_ALARM' est nécessaire pour utiliser un' Intent' pour définir une alarme avec une application de réveil. Jetez un oeil [ici] (https://developer.android.com/reference/android/provider/AlarmClock.html). –