Android alarmManager setRepeating pas de déclenchement
J'essaye de configurer une alarme à une heure précise, mais il n'est pas pris dans mon reciver.
De l'installation:
Intent intent = new Intent(this, ActionReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
Calendar current = Calendar.getInstance();
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, (current.getTimeInMillis() + 60000),3600000, pendingIntent);
Voici mon reciver:
public class ActionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras(); //breakpoint here that doesn't get triggered
}
}
J'ai mis ces valeurs dans mon manifeste:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<receiver android:name="com.project.ActionReceiver" android:enabled="true" />
Pas sûr de ce qui est mal... merci!
Ne pas le récepteur
ActionReceiver
OriginalL'auteur that_guy | 2013-09-05
Vous devez vous connecter pour publier un commentaire.
Finalement obtenu le récepteur à feu! J'ai ajouté le code suivant dans mon manifeste:
Trouvé ici avec plus de détails: https://stackoverflow.com/a/16119351/1174574
android:exported="true"
OU la<intent-filter>
. Pas les deux. Vous avez eu ni, ce qui est pourquoi il ne fonctionnait pas. Le<receiver>
doit être disponible pour des applications en dehors de votre application (par exemple, laAlarmManager
). pour cela, vous pouvez soit définirandroid:exported="true"
OU ajouter un<intent-filter>
. Si vous ajoutez un<intent-filter>
, l'hypothèse est que la<receiver>
doit être exporté, de sorte que la valeur par défaut deexport
est fixé àtrue
en présence d'un<intent-filter>
.OriginalL'auteur that_guy
Le nom de récepteur dans le manifeste doit être un nom de classe, tels que:
BTW, définir une action est une meilleure pratique.
Et dans le manifeste
Exported receiver does not require permission
OriginalL'auteur Peter Zhao
D'essayer de changer le
android:name
attribut de votrereceiver
pour le nom de classe complet de votreActionReceiver
. Quelque chose comme:OriginalL'auteur jbr3zy