Android Camera Service

Android Camera Service (ACS) में, ऑटोमोटिव डिवाइसों के साथ-साथ मोबाइल फ़ोन, टैबलेट, और टीवी जैसे अन्य डिवाइसों में इस्तेमाल किया जाने वाला कैमरा स्टैक शामिल होता है. कैमरे के पूरे आर्किटेक्चर को देखने के लिए, कैमरा देखें. इस पेज पर, खास तौर पर ऑटोमोटिव डिवाइसों और Android Camera API के साथ काम करने से जुड़े विषयों पर फ़ोकस किया गया है.

Android Camera Service चालू करें

ऑटोमोटिव प्लैटफ़ॉर्म पर Android Camera Service को चालू करने के लिए, प्रॉडक्ट के मेकफ़ाइल में ENABLE_CAMERA_SERVICE को true के तौर पर सेट करना होगा.

ऑटोमोटिव से जुड़ी खास बातें

ऑटोमोटिव डिवाइसों के संदर्भ में, कैमरा एचएएल में दो खास विशेषताएं होनी चाहिए. ये विशेषताएं, ऑटोमोटिव डिवाइस के फ़ॉर्म फ़ैक्टर के हिसाब से होनी चाहिए:

आइटम ब्यौरा
android.automotive.location इससे यह तय होता है कि कैमरे, वाहन के बॉडी फ़्रेम के हिसाब से किस पोज़िशन में लगे हैं.
android.automotive.lens.facing इससे पता चलता है कि कैमरे का लेंस, वाहन के बॉडी फ़्रेम और यात्री की सीटों के हिसाब से किस दिशा में है.

जब कैमरे किसी खास जगह या लेंस के ओरिएंटेशन (android.automotive.location या android.automotive.lens.facing की विशेषताओं में *_OTHER की मौजूदगी से पता चलता है) के साथ सटीक तरीके से अलाइन नहीं होते हैं या जब कई कैमरे एक ही जगह और दिशा शेयर करते हैं, तो कैमरा HAL को अतिरिक्त विशेषताएं देनी चाहिए. इससे ऐप्लिकेशन, कैमरे की जगह की जानकारी का सटीक पता लगा पाएंगे. इनमें ये विशेषताएं शामिल हैं:

हेडलेस सिस्टम यूज़र को ऐक्सेस देना

सिस्टम और पहले पक्ष (1P) के कुछ ऐप्लिकेशन, हेडलेस सिस्टम यूज़र के तौर पर कैमरे को ऐक्सेस कर सकते हैं. इसे यूज़र 0 भी कहा जाता है. इससे यह पुष्टि करने में मदद मिलती है कि सुरक्षा के लिहाज़ से ज़रूरी ऐप्लिकेशन, जैसे कि रीयर-व्यू कैमरा, बिना किसी रुकावट के कैमरा स्ट्रीमिंग जारी रख सकते हैं. भले ही, फ़ोरग्राउंड में उपयोगकर्ता स्विच कर रहा हो. सिर्फ़ वे ऐप्लिकेशन कैमरे को User 0 के तौर पर ऐक्सेस कर सकते हैं जिन्हें प्लैटफ़ॉर्म ने साइन किया है और जिनके पास नई अनुमति android.permission.CAMERA_HEADLESS_SYSTEM_USER है.

User 0 के तौर पर कैमरे ऐक्सेस करने वाले ऐप्लिकेशन के लिए, कैमरे के डेटा को स्थानीय तौर पर इस्तेमाल करना ज़रूरी है. साथ ही, इसे डिवाइस से बाहर नहीं भेजा जाना चाहिए. इसमें कैमरे के डेटा से मिला कोई भी डेटा शामिल है. इन ऐप्लिकेशन के लिए, android.permission.CAMERA अनुमति पहले से दी जानी चाहिए. साथ ही, इन्हें Google के बिल्ट-इन ऐप्लिकेशन से जुड़ी ज़रूरी शर्तों के लिए, ड्राइविंग के लिए डिज़ाइन किया गया ऐप्लिकेशन बनाने से जुड़ी नीति के तहत, अनुमति पहले से देने की नीति का पालन करना होगा.

कैमरे की निजता की अनुमति वाली सूची को कॉन्फ़िगर करना

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

सिर्फ़ सिस्टम और खास ऐप्लिकेशन को android.permission.CAMERA_PRIVACY_ALLOWLIST अनुमति दी जाती है. ये ऐप्लिकेशन ही इस सुविधा का इस्तेमाल कर सकते हैं. Google Automotive Services (GAS) के पार्टनर को, समीक्षा के लिए अपने ऐप्लिकेशन को अनुमति वाली सूची में सबमिट करना होगा. साथ ही, उन्हें अनुमति वाली सूची से जुड़ी निजता नीति का पालन करना होगा. ज़्यादा जानने के लिए, Android for Cars पर जाएं.

अनुमति वाली सूची में कोई ऐप्लिकेशन जोड़ना

etc/sysconfig डायरेक्ट्री में:

  1. सिस्टम कॉन्फ़िगरेशन वाली एक्सएमएल फ़ाइल में, ऐप्लिकेशन के पैकेज का नाम जोड़ें:

    <!-- In an xml file under etc/sysconfig ->
    
    <!--
    Allowlisted packages for the camera privacy toggle. Users can't turn on
    privacy for these packages as OEM requires camera access for these packages
    to preserve user safety.
    -->
    
    <config>
        <camera-privacy-allowlisted-app package="package_name" />
    </config>
    
  2. ऐप्लिकेशन की निजता नीति के बारे में जानकारी देने वाले पेज का यूआरएल, AndroidManifest.xml में जोड़ें. meta-data का नाम privacy_policy होना चाहिए.

    <meta-data android:name="privacy_policy" android:value= privacy policy URL/>
    

डिफ़ॉल्ट रूप से, अनुमति वाली सूची में शामिल ऐप्लिकेशन या ज़रूरी ऐप्लिकेशन के लिए, कैमरे की निजता टॉगल को निजता सेटिंग यूज़र इंटरफ़ेस (यूआई) में छिपाया जाता है. हालांकि, ओईएम इस डिफ़ॉल्ट व्यवहार को बदल सकते हैं. इसके लिए, उन्हें नीचे दिए गए फ़्लैग को true पर सेट करना होगा. इससे ओईएम, अपनी पसंद के हिसाब से ज़रूरी ऐप्लिकेशन के लिए, कैमरे की निजता टॉगल की सेटिंग को अपनी पसंद के मुताबिक बना सकते हैं.

<!-- Whether to show the toggle to turn on the camera privacy for required apps -->

<bool name="config_show_camera_required_apps_toggle">false</bool>

कैमरे को ऐक्सेस करने की सुविधा पहले पाएं

समय के हिसाब से ज़रूरी और सुरक्षा से जुड़े कुछ ऐप्लिकेशन, Android बूट प्रोसेस पूरी होने से पहले ही कैमरे को ऐक्सेस कर सकते हैं. हालांकि, यह ऐक्सेस सिर्फ़ उन खास क्लाइंट को दिया जाता है जिनके पास UID AID_AUTOMOTIVE_EVS है. किसी सिस्टम ऐप्लिकेशन को कोई खास यूआईडी असाइन करने के बारे में ज़्यादा जानने के लिए, डिस्क्रिशनरी ऐक्सेस कंट्रोल (डीएसी) लेख पढ़ें. कैमरे का यह शुरुआती ऐक्सेस, सिर्फ़ उन सिस्टम कैमरों के लिए उपलब्ध है जो वाहन के बाहरी हिस्से पर लगे होते हैं.