Android 11 या उसके बाद के वर्शन वाले डिवाइसों पर, Android फ़्रेमवर्क में सिस्टम कैमरे काम करते हैं. ये ऐसे कैमरा डिवाइस होते हैं जो सिर्फ़ उन प्रोसेस को दिखते हैं जिनके पास android.permission.SYSTEM_CAMERA
अनुमति और कैमरे की सामान्य अनुमतियां होती हैं.
Android 11 में android.permission.SYSTEM_CAMERA
अनुमति को जोड़ा गया है. इसकी सुरक्षा का लेवल system|signature
है. इसका मतलब है कि सिर्फ़ सिस्टम के पार्टिशन पर इंस्टॉल किए गए उन ऐप्लिकेशन को यह अनुमति दी जा सकती है जिन्हें सिस्टम के सर्टिफ़िकेट से साइन किया गया हो या जो सिस्टम के सर्टिफ़िकेट से साइन किए गए हों. तीसरे पक्ष के सार्वजनिक ऐप्लिकेशन, सिस्टम के कैमरे ऐक्सेस नहीं कर सकते.
सिस्टम कैमरे, डिवाइस बनाने वाली उन कंपनियों के लिए फ़ायदेमंद होते हैं जो ऐसी सुविधाएं लागू करना चाहती हैं जिनके लिए कैमरे का ऐक्सेस ज़रूरी है. हालांकि, ये सुविधाएं सिर्फ़ खास ऐप्लिकेशन या सिस्टम ऐप्लिकेशन के लिए उपलब्ध होती हैं.
जिन सिस्टम ऐप्लिकेशन को android.permission.SYSTEM_CAMERA
अनुमति दी गई है उनके पास android.permission.CAMERA
अनुमति भी होनी चाहिए. इसलिए, उपयोगकर्ता सामान्य CAMERA
अनुमतियों को रद्द कर सकते हैं, ताकि ऐसे ऐप्लिकेशन डिवाइस के कैमरे ऐक्सेस न कर सकें.
लागू करना
किसी कैमरे को सिस्टम कैमरा बनाने के लिए, कैमरा एचएएल को अपनी सुविधाओं की सूची में ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA
का विज्ञापन करना होगा.
सिस्टम कैमरे का ऐक्सेस देने वाला ऐप्लिकेशन बनाने के लिए, ज़रूरी है कि उस ऐप्लिकेशन को डिवाइस के हिसाब से बनाई गई privapp-permissions.xml
फ़ाइल में अनुमति वाली सूची में शामिल किया गया हो. इस सूची में उन ऐप्लिकेशन के बारे में जानकारी होती है जिन्हें android.permission.SYSTEM_CAMERA
की अनुमति देनी होती है.
पुष्टि करें
यह पुष्टि करने के लिए कि डिवाइस पर मौजूद कोई भी सिस्टम कैमरा, सार्वजनिक ऐप्लिकेशन से नहीं खोजा जा सकता, android.permission.cts.Camera2PermissionTest.testSystemCameraDiscovery
CTS जांच को चलाएं.
कैमरे के लिए सीटीएस के सभी टेस्ट, सिस्टम कैमरे वाले डिवाइसों पर चलते हैं.