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 जांच को चलाएं.
कैमरे के लिए सीटीएस के सभी टेस्ट, सिस्टम कैमरे वाले डिवाइसों पर चलते हैं.