फ़ोरग्राउंड सेवाओं का एलान करना और अनुमतियों का अनुरोध करना

अपने ऐप्लिकेशन के मेनिफ़ेस्ट में, <service> एलिमेंट का इस्तेमाल करके, अपने ऐप्लिकेशन की हर फ़ोरग्राउंड सेवा के बारे में बताएं. हर सेवा के लिए, android:foregroundServiceType एट्रिब्यूट का इस्तेमाल करके बताएं कि सेवा किस तरह का काम करती है.

इसके अलावा, अपनी फ़ोरग्राउंड सेवाओं के लिए ज़रूरी अनुमतियों का अनुरोध करें.

वर्शन के साथ काम करना

आपके ऐप्लिकेशन के टारगेट किए गए एपीआई लेवल के आधार पर, फ़ोरग्राउंड सेवाओं का एलान करने और अनुमतियों का अनुरोध करने से जुड़ी ज़रूरी शर्तें अलग-अलग होती हैं. इस पेज पर, एपीआई लेवल 34 या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए ज़रूरी शर्तों के बारे में बताया गया है. प्लैटफ़ॉर्म के पुराने वर्शन में, फ़ोरग्राउंड सेवाओं में हुए बदलावों के बारे में जानने के लिए, फ़ोरग्राउंड सेवाओं में हुए बदलाव लेख पढ़ें.

ऐप्लिकेशन मेनिफ़ेस्ट में फ़ोरग्राउंड सेवाओं की जानकारी देना

यहां दिया गया कोड, मीडिया चलाने वाली फ़ोरग्राउंड सेवा का एलान करने का तरीका दिखाता है. संगीत चलाने के लिए, इस तरह की सेवा का इस्तेमाल किया जा सकता है.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
  <application ...>

    <service
        android:name=".MyMediaPlaybackService"
        android:foregroundServiceType="mediaPlayback"
        android:exported="false">
    </service>
  </application>
</manifest>

कोड के बारे में अहम जानकारी

  • इस उदाहरण में, सेवा का सिर्फ़ एक टाइप है, media. अगर आपकी सेवा पर कई टाइप लागू होते हैं, तो उन्हें | ऑपरेटर से अलग करें. उदाहरण के लिए, अगर आपकी सेवा कैमरे और माइक्रोफ़ोन का इस्तेमाल करती है, तो इसका एलान इस तरह करें:

    android:foregroundServiceType="camera|microphone"
    
  • आपका ऐप्लिकेशन किस एपीआई लेवल को टारगेट करता है, इसके आधार पर आपको ऐप्लिकेशन के मेनिफ़ेस्ट में फ़ोरग्राउंड सेवाओं के बारे में बताना ज़रूरी हो सकता है. खास एपीआई लेवल की ज़रूरी शर्तों के बारे में जानकारी, फ़ोरग्राउंड सेवाओं में हुए बदलाव में दी गई है.

    अगर कोई फ़ोरग्राउंड सेवा बनाई जाती है और मेनिफ़ेस्ट में उसके टाइप की जानकारी नहीं दी जाती है, तो startForeground() को कॉल करने पर सिस्टम MissingForegroundServiceTypeException को दिखाता है.

    हालांकि, ऐसा करना ज़रूरी नहीं है, लेकिन अपनी सभी फ़ोरग्राउंड सेवाओं के बारे में बताना और उनकी सेवा के टाइप बताना सबसे सही तरीका है.

फ़ोरग्राउंड सेवा की अनुमतियों का अनुरोध करना

नीचे दिए गए कोड में, कैमरे का इस्तेमाल करने वाली फ़ोरग्राउंड सेवा के लिए अनुमतियों का अनुरोध करने का तरीका बताया गया है.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>

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

    <application ...>
        ...
    </application>
</manifest>

कोड के बारे में अहम जानकारी

  • यह कोड, एपीआई लेवल 34 या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए सबसे सही तरीकों का इस्तेमाल करता है.