البرمجة

استثناءات بصمات الأصابع على Android 6

عندما يتم تمكين البصمات في تطبيقك الإنتاجي على أجهزة Android 6، تظهر الكثير من الاستثناءات التي لا أستطيع إعادة إنتاجها على أجهزة Samsung المحلية. الإستثناء يظهر كما يلي:

rust
Message: 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 المتخصصة، حيث قد يكون هناك مطورون آخرون واجهوا نفس المشكلة ووجدوا حلاً.

زر الذهاب إلى الأعلى