عندما يتم تمكين البصمات في تطبيقك الإنتاجي على أجهزة Android 6، تظهر الكثير من الاستثناءات التي لا أستطيع إعادة إنتاجها على أجهزة Samsung المحلية. الإستثناء يظهر كما يلي:
مقالات ذات صلة
rustMessage: SecurityException: Permission Denial: getCurrentUser() from pid=24365, uid=10229 requires android.permission.INTERACT_ACROSS_USERS
android.os.Parcel.readException in Parcel.java::1620
android.os.Parcel.readException in Parcel.java::1573
android.hardware.fingerprint.IFingerprintService$Stub$Proxy.hasEnrolledFingerprints in IFingerprintService.java::503
android.hardware.fingerprint.FingerprintManager.hasEnrolledFingerprints in FingerprintManager.java::762
android.support.v4.hardware.fingerprint.FingerprintManagerCompatApi23.a in SourceFile::39
android.support.v4.hardware.fingerprint.FingerprintManagerCompat$Api23FingerprintManagerCompatImpl.a in SourceFile::239
android.support.v4.hardware.fingerprint.FingerprintManagerCompat.a in SourceFile::66
يتم استخدام فئة FingerprintManagerCompat
القياسية من مكتبة الدعم، والتحقق يعمل بشكل صحيح على أجهزة أخرى. لا أريد إضافة هذا الإذن إلى تطبيقي – يبدو أنه ليس له علاقة بالبصمات. هل واجه أحد مشكلة مماثلة؟
المزيد من المعلومات
بالتأكيد، هنا بعض المعلومات الإضافية حول المشكلة:
- يبدو أن الاستثناء يشير إلى أن هناك استثناء أمني يتعلق بإذن
android.permission.INTERACT_ACROSS_USERS
الذي يبدو أنه مطلوب لاستدعاءgetCurrentUser()
، والذي يعتبر ضروريًا لاستخدام بعض خصائص البصمات على بعض أجهزة Samsung تعمل بنظام Android 6. - يبدو أن هذا الإذن غير متوفر في تطبيقك، مما يسبب حدوث الاستثناء.
- يمكن أن يكون هذا السلوك مرتبطًا بتخصيص Samsung لنظام Android على أجهزتها، والذي قد يختلف عن تصميم Android القياسي في بعض الحالات.
- قد يكون من المفيد البحث عن تحديثات لنظام التشغيل أو تحديثات لتطبيق البصمات الخاص بـ Samsung التي قد تصلح هذه المشكلة.
- يمكن أيضًا البحث عن حلول أو أفكار على منتديات تطوير Android المتخصصة، حيث قد يكون هناك مطورون آخرون واجهوا نفس المشكلة ووجدوا حلاً.