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

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