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

अपने ऐप्लिकेशन के मेनिफ़ेस्ट में, ऐप्लिकेशन की हर फ़ोरग्राउंड सेवा के लिए <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 या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए सबसे सही तरीकों का इस्तेमाल करता है.