6

アラームは動作しません..私は、アラームシステムをやっているが、私は電話がオフになっている問題をしました。..AlarmManager - アンドロイド

私はドを設定していますアラームは、次のように携帯電話をオンにすると

public void doIntents(Context context, long milis, Tratam trat){ 
    cal=Calendar.getInstance(); 
    alarmManager = (AlarmManager) context.getSystemService(Service.ALARM_SERVICE); 

    cal.setTimeInMillis(milis); 
    Intent intent = new Intent(context, OnAlarmReceiver.class); 


    pendingIntent = PendingIntent.getBroadcast(context, trat.getId(), intent, PendingIntent.FLAG_UPDATE_CURRENT); 
    alarmManager.set(AlarmManager.RTC_WAKEUP,milis ,pendingIntent); 

} 

アラームがうまく動作..

私は何ができますか?

ありがとうございました!

+1

あなたはそれが何をすると思いますか?電話機の電源をオンにするか、電話機の電源を入れた直後にアラームをトリガーしますか? –

+0

電話が切れてもアラーム音が鳴りたいです。 –

+2

それは可能ではないでしょう、そのlinuxそしてこれはあなたのLinuxデスクトップのように振る舞います。 – nandeesh

答えて

6

さて、問題は、電話機の再起動時にアプリが実行されていないことです。 BOOT_COMPLETEDメッセージを受信できるBroadcastReceiverを登録する必要がありますので、電話機の再起動時にメッセージを受信します。その後、BroadcastReceiverで、それらのアラームを再スケジューリングすることができます。しかし、私は電話をオフにして再起動したときに

<receiver android:name="MyBootReceiver" 
     android:enabled="true" 
     android:exported="true" 
     android:label="BootReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED"></action> 

     </intent-filter> 
    </receiver> 
+0

ありがとう、私はそれを知って..、しかし..どのようにAndroidのアラームを動作させる? AlarmManagerは使用しませんか? –

+0

さて、あなたはAlarmManagerを使用する必要があります。 – LuxuryMode

+0

はい私はAlarmManager ..を使用していますが、電話の電源を切ってもアラームが鳴らないのはどうですか? –

3

アラームがクリアされている(例えば上の電話のターンを作る)..あなたが電話がオフのときに、あなたのアラームトリガーをすることについて何かできることがあると思うが、しないでください

public class AlarmMonitorReceiver extends BroadcastReceiver{ 
    public void onReceive(Context context,Intent intent) { 
    if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) { 
     AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 
     Intent intentAlarm = new Intent(context, ExampleReceiver.class); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intentAlarm, 0); 
     Calendar time = Calendar.getInstance(); 
     time.setTimeInMillis(System.currentTimeMillis()); 
     time.add(Calendar.SECOND, 10); 
     alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(),10000,pendingIntent);   
    } 

    } 

}

:あなたはBOOT_COMPLETED

In Manifest.xml: 

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
    <application ...> 
<receiver android:name="com.example.receiver.AlarmMonitorReceiver" 
       android:enabled="true" 
       android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED"/> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </receiver> 
</application> 

のJavaを受け取ることができるBroadcastReceiverを使用してアラームを起動することができます