android - जो अलार्म मैनेजर सेवा का उपयोग करने के लिए एक एंड्रॉइड एप्लिकेशन की अनुमति देता है?




permissions alarm (4)

Manifest.xml में जोड़ें:

<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
...
<receiver  android:process=":remote" android:name="Alarm"></receiver>

कोड:

  package YourPackage;
    import android.app.AlarmManager;
    import android.app.PendingIntent;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.os.PowerManager;

public class Alarm extends BroadcastReceiver 
    {    
         @Override
         public void onReceive(Context context, Intent intent) 
         {   
             PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
             PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "YOUR TAG");
             wl.acquire();

             // Put here YOUR code.
             Toast.makeText(context, "Alarm !!!!!!!!!!", Toast.LENGTH_LONG).show(); // For example

             wl.release();
         }

     public void SetAlarm(Context context)
     {
         AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
         Intent i = new Intent(context, Alarm.class);
         PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
         am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60 * 10, pi); // Millisec * Second * Minute
     }

     public void CancelAlarm(Context context)
     {
         Intent intent = new Intent(context, Alarm.class);
         PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0);
         AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
         alarmManager.cancel(sender);
     }
    }

यदि आप फ़ोन बूट समय पर दोहराए जाने वाले अलार्म सेट करना चाहते हैं:

Manifest.xml को अनुमति जोड़ें:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
    <receiver android:name=".AutoStart">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"></action>
        </intent-filter>
</receiver>

यदि कोई एंड्रॉइड एप्लिकेशन अलार्म मैनेजर सेवा का उपयोग करना चाहता है, तो फिर किस एप्लिकेशन को अनुमति की आवश्यकता है?

मैंने यह परीक्षण किया है कि ऐसा लगता है कि एप्लिकेशन को अलार्म मैनेजर सेवा का उपयोग करने की कोई आवश्यकता नहीं है।

क्या यह सच है?


क्रिस्टियन ने कहा कि कुछ बिट्स को जोड़ना चाहते हैं

यहां तक ​​कि अगर आप android.permission.RECEIVE_BOOT_COMPLETED अनुमति का उपयोग करते हैं तो आपका एप्लिकेशन 2.XX उपकरणों पर ठीक से चल जाएगा।

लेकिन 4.x उपकरणों में व्यापक रिसीवर बूट पर तब तक काम नहीं करेगा जब तक कि आप मैन्युअल रूप से आवेदन नहीं शुरू करते हैं


मुझे नहीं पता है कि किसी ने भी इस अनुमति का उल्लेख क्यों नहीं किया

लेकिन एंड्रॉइड प्रलेखन के अनुसार, आपको SET_ALARM अनुमति का उपयोग करना चाहिए

प्रलेखन

उपयोगकर्ता के लिए अलार्म सेट करने के लिए किसी एप्लिकेशन को प्रसारित करने की अनुमति देता है

<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>

यह फोन हर 10 मिनट तक बंद हो जाता है जब तक फोन बंद नहीं हो जाता।

<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>

<receiver  android:process=":remote" android:name="Alarm"></receiver>

यदि आप फ़ोन बूट समय पर दोहराए जाने वाले अलार्म सेट करना चाहते हैं:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
...
<receiver android:name=".AutoStart">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"></action>
    </intent-filter>
</receiver>

अधिक जानकारी के लिए: अलार्म प्रबंधक उदाहरण





alarm