6

मैं एक अलार्म प्रणाली कर रहा हूँ, लेकिन मैं एक समस्या है जब फोन बंद कर दिया है .. अलार्म काम नहीं करता है ..AlarmManager जब फोन बंद कर दिया है - Android के

मैं डी सेट कर रहा हूं अलार्म इस प्रकार है:

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

जो संभव नहीं होगा, इसका लिनक्स और यह इस मामले में आपके लिनक्स डेस्कटॉप की तरह व्यवहार करता है – nandeesh

उत्तर

6

हाँ, समस्या यह है कि फोन फिर से चालू होने पर आपका ऐप नहीं चल रहा है। आपको ब्रॉडकास्ट रिसीवर पंजीकृत करना होगा जो BOOT_COMPLETED संदेश प्राप्त कर सकता है ताकि फोन रीबूट होने पर उसे एक संदेश प्राप्त हो। फिर ब्रॉडकास्ट रिसीवर में आप या तो उन अलार्म या जो भी हो सकते हैं। लेकिन मैं वहाँ कुछ भी आप अपने अलार्म ट्रिगर (जैसे को फ़ोन चालू बनाने) बनाने फोन बंद है जब ..

<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

धन्यवाद, मुझे पता है .., लेकिन .. एंड्रॉइड अलार्म कैसे काम करता है? AlarmManager का उपयोग नहीं करता है? –

+0

हाँ, आपको अलार्ममेनगर का उपयोग करने की आवश्यकता है। – LuxuryMode

+0

हां मैं अलार्ममेनगर का उपयोग कर रहा हूं .. लेकिन .. असंभव है कि फ़ोन बंद होने पर अलार्म लगता है? –

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);   
    } 

    } 

}

: आप BroadcastReceiver का उपयोग कर कि 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> 

जावा प्राप्त कर सकते हैं अपने अलार्म शुरू कर सकते हैं

संबंधित मुद्दे