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