私はアンドロイドには初心者です。私はアンドロイドでアラームアプリケーションを開発しています。私はデバイスがオンになっているときに動作するコードを次のようにしていますが、デバイスを再起動しても機能しません。私は共有の設定でそのアラームを保存し、それから取得しました。デバイスの再起動時に、のOnBootReceiverからアラームを再スケジュールします。私はすでにAndroidマニフェストへのアクセス許可を述べました。テスト目的のために、私はハードコードされた値を取っています。以下のコードをチェックし、1日半からそれについて研究してください。誰でも知っている。ありがとう。デバイス再起動時に特定の時刻にアラームがオフにならない
パブリッククラスFirstActivityアクティビティがOnClickListener実装延び{BroadcastReceiver延びOnBootReciever
int mHour = 14;
int mMinute = 48;
static String prefkey="SHARED_KEY";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SharedPreferences preferences =getSharedPreferences(prefkey,Context.MODE_WORLD_READABLE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("min",mMinute);
editor.putInt("hour",mHour);
editor.commit();
}
}
パブリッククラス{
int sethour,setmin;
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "booting....", Toast.LENGTH_LONG).show();
SharedPreferences preferences=context.getSharedPreferences(FirstActivity.prefkey,Context.MODE_PRIVATE);
sethour=preferences.getInt("hour",14);
setmin=preferences.getInt("min",48);
Calendar cal=Calendar.getInstance();
cal.add(Calendar.MINUTE,setmin);
cal.add(Calendar.HOUR_OF_DAY,sethour);
cal.add(Calendar.SECOND,0);
AlarmManager mgr=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i=new Intent(context,RepeatingAlarm.class);
PendingIntent sender1 = PendingIntent.getBroadcast(context,0, i,PendingIntent.FLAG_UPDATE_CURRENT);
mgr.setRepeating(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),AlarmManager.INTERVAL_FIFTEEN_MINUTES,sender1);
}
}
パブリッククラスRepeatingAlarmはBroadcを拡張しますで {
static MediaPlayer mMediaPlayer ;
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Trigger the alarm", Toast.LENGTH_LONG).show();
mMediaPlayer = new MediaPlayer();
mMediaPlayer.create(getcontext,R.raw.warm).start();
}
}
astReceiverのAndroidManifest.xml - >
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<receiver android:name="com.vidushi.alarmsystem.RepeatingAlarm"></receiver>
<receiver android:name=".OnBootReciever" android:process=":remote">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
はあなたがmenifestファイルにアクセス権を追加してくださいアプリケーションが><使用許可アンドロイドを:名前は=「android.permission.RECEIVE_BOOT_COMPLETED」/> reply.Yesため – Maneesh
おかげで、私はすでにそれを行っています、申し訳ありませんが、私はそれを言及することを忘れて、デバイスの再起動でToast MSG Booting ...も来ています。 –
ブートレシーバーなしでコードは機能しますか?例えば。ボタンをクリックするとアラームが設定されます。 –