次のように、電話の起動後に開始する受信機があります。
<receiver android:name=".OnBootReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
私が実行するレシーバーで、次のようなアラームを設定します。
AlarmManager mgr=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i=new Intent(context, LocationPoller.class);
i.putExtra(LocationPoller.EXTRA_INTENT,
new Intent(context, LocationReceiver.class));
i.putExtra(LocationPoller.EXTRA_PROVIDER,
LocationManager.GPS_PROVIDER);
PendingIntent pi=PendingIntent.getBroadcast(context, 0, i, 0);
mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime(),
PERIOD,
pi);
もちろん、ユーザーがアプリをインストールする場合を除き、ユーザーが電話を再起動するまでアラームは設定されません。
これを回避するには、AlarmManager が設定されているかどうかをアクティビティから確認する必要があります。そうでない場合は、アクティビティから設定する必要があります。
したがって、アラームマネージャーが既に設定されているかどうかを確認するにはどうすればよいですか。