मैं मार्शमलो फिंगरप्रिंट प्रमाणीकरण API के साथ शुरुआत करना चाहता हूं। मैं समझता हूँ कि अनुमति के लिए पूछने के लिए, मैं निम्न विधि का उपयोग करना होगा:मार्शमलो फिंगरप्रिंट स्कैनर हार्डवेयर उपस्थिति
ContextCompat.checkSelfPermission(getContext(), Manifest.permission.USE_FINGERPRINT);
और डिवाइस एपीआई स्तर 23 या इससे अधिक चल रहा है तो मैं जांच करना चाहिए। लेकिन इससे पहले कि मैं अनुमति मांगूं, मैं यह जांचना चाहूंगा कि डिवाइस में वास्तव में एक फिंगरप्रिंट स्कैनर है या नहीं। मैं निम्नलिखित दो तरीकों पाया इस चेक करने के लिए:
FingerprintManager manager = (FingerprintManager) getSystemService(Context.FINGERPRINT_SERVICE);
manager.isHardwareDetected();
manager.hasEnrolledFingerprints();
लेकिन दोनों तरीकों USE_FINGERPRINT
अनुमति की आवश्यकता सभी को कहा जाता है। मैं एक फिंगरप्रिंट स्कैनर का उपयोग करने की अनुमति क्यों मांगूंगा जिसके बारे में मुझे पता भी नहीं है? क्या स्कैनर मौजूद है या नहीं, यह जानने के लिए कोई और तरीका है? या अनुमति के लिए पहले पूछने का एकमात्र तरीका है?
'USE_FINGERPRINT' एक सामान्य अनुमति है - एक बार यह अपने मेनिफ़ेस्ट में है आप हमेशा यह करना होगा और आप()' ContextCompat.checkSelfPermission उपयोग करने के लिए की जरूरत नहीं है '। – ianhanniballake
@ianhanniballake ओह, यह सच लगता है। फिर यह 'सुरक्षा अपवाद' क्यों फेंक देगा? क्या यह सिर्फ एक कंपाइलर त्रुटि या कुछ नहीं होना चाहिए? 'VIBRATOR_SERVICE' के लिए सामान्य अनुमति भी आवश्यक है, और यह कोई अपवाद नहीं फेंकता है। – Bryan