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

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