J'essaie de configurer un récepteur d'alarme juste après le démarrage. Par conséquent, j'ai un OnBootReceiver qui devrait enregistrer l'alarme. Le onBootReceiver fonctionne et il est appelé, mais de toute façon il ne peut pas trouver ma classe AlarmReceiver.OnBootReceiver fonctionne, mais ne trouve pas AlarmReceiver
OnBootReceiver qui démarre avec succès après le démarrage:
public class OnBootReceiver extends BroadcastReceiver {
private static final String TAG = "OnBootReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "called");
Intent i = new Intent(context, com.packagenames.AlarmReceiver.class);
PendingIntent pi = PendingIntent.getService(context, 0, i, 0);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Calendar time = Calendar.getInstance();
time.setTimeInMillis(System.currentTimeMillis());
time.add(Calendar.SECOND, 30);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), time.getTimeInMillis(), pi);
}
}
Comme vous vous pouvez le voir, il configure l'alarme essaie d'appeler com.packagenames.AlarmReceiver.class. Cette classe existe et se trouve dans le même package:
public class AlarmReceiver extends BroadcastReceiver {
private static final String TAG = "AlarmReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "alarm received");
Intent i = new Intent(context, com.packagename.DataService.class);
i.putExtra("action", "process");
context.startService(i);
}
}
Malheureusement, je reçois l'erreur suivante:
02-03 09:22:25.344: W/ActivityManager(103): Unable to start service Intent { flg=0x4 cmp=com.phonegap.packagename/.AlarmReceiver (has extras) }: not found
Le Manifest Android ressemble à ce
<application>
// activities etc
<receiver
android:name="com.phonegap.packagename.OnBootReceiver"
android:enabled="true"
android:exported="false"
android:label="OnBootReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<receiver
android:name="com.phonegap.packagename.AlarmReceiver"
android:enabled="true"
android:label="AlarmReceiver">
<intent-filter>
</intent-filter>
</receiver>
</application>
Voyez-vous une erreur? Peut-être que j'ai oublié quelque chose?
Merci
modifier: dans le manifeste, j'ai ajouté
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
afin de rendre le travail de OnBootReceiver. Ai-je besoin de quelque chose de similaire pour l'alarme?
Vous ne devriez pas avoir à ajouter quoi que ce soit pour votre alarme. – JoxTraex
[http://stackoverflow.com/questions/4459058/alarm-manager-example/8801990#8801990][1] [1]: http://stackoverflow.com/questions/4459058/alarm-manager- exemple/8801990 # 8801990 – XXX