¿Por qué `hasEnrolledFingerprints` está dando error que requiere un permiso sólo en mi Fragmento pero no en la Actividad en el Ejemplo de Google?
Estoy tratando de implementar la API de huellas digitales de Google en mi aplicación (en mi fragmento específicamente). Google ha dado un ejemplo, pero se implementa dentro de una actividad aquí .
Mi pregunta específica es que el código abajo para comprobar si hay huellas registradas ya, me está dando un error (captura de pantalla abajo):
- Android Implementa dos fragmentos que tienen un comportamiento diferente cuando aparece el teclado
- PagerSlidingTabStrip: Cómo actualizar fragmento interno Listview en la ficha actual en tiempo de ejecución y detener los datos de carga para la siguiente pestaña
- Menú de opciones De fragmento en la barra de acción en android
- La mejor manera de implementar varios diálogos de alertas en una actividad
- ¿Cómo encuentro el tamaño de la pantalla en una clase de fragmentos?
Pregunta -> ¿Qué cambio debo hacer para que funcione en mi Fragmento (en contraposición a una actividad como la de Google)?
if (!mFingerprintManager.hasEnrolledFingerprints()) { purchaseButton.setEnabled(false); // This happens when no fingerprints are registered. Toast.makeText(getActivity(), "Go to 'Settings -> Security -> Fingerprint' and register at least one fingerprint", Toast.LENGTH_LONG).show(); return; }
- Cómo mostrar / ocultar fragmento con el dedo hacia arriba / hacia abajo como la aplicación androide de soundcloud
- Cómo agregar el menú de opciones de barra de acciones en Fragmentos de Android
- El fragmento no actualiza el contenido después de volver de la pila posterior
- Cómo carga fragmento en ViewPager sólo cuando su seleccionado
- GetActivity (). StartActivityForResult () no funciona en fragmentos
- Cómo reemplazar Fragment dentro de ViewPager, usando PagerAdapter?
- Obtener el valor edittext del fragmento
- Diferencia entre el uso de Contexto y getactivity en fragmento?
Android 6.0 debe "pedir" permiso en tiempo de ejecución. https://developer.android.com/training/permissions/requesting.html
Los permisos peligrosos pueden dar acceso a la aplicación a los datos confidenciales del usuario. Si su aplicación muestra un permiso normal en su manifiesto, el sistema concede el permiso automáticamente. Si elige un permiso peligroso, el usuario debe darle aprobación explícita a su aplicación.
Incluso si usted tiene <uses-permission android:name="android.permission.USE_FINGERPRINT"/>
en su manifiesto, Mi comprensión es que usted debe pedir el permiso. Por lo tanto, parece que el error se debe a que su aplicación no tiene permiso para utilizar el gestor de huellas dactilares.
(Sólo como el 90% seguro de esto, ya que estoy pegando con 5.0 por ahora, lo siento)
Actualización: http://developer.android.com/reference/android/Manifest.permission.html#USE_FINGERPRINT
Public static final String USE_FINGERPRINT ———- Añadido en el nivel 23 de API
Permite que una aplicación utilice hardware de huella digital.
Nivel de protección: normal
Por lo tanto, parece que no debería necesitar este permiso en tiempo de ejecución.
1) ¿Tiene el permiso en su manifiesto?
2) Debe poner el siguiente código en el suyo para comprobar si el permiso es revocado / no dado por alguna razón.
if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.USE_FINGERPRINT) // this might need massaged to 'android.permission.USE_FINGERPRINT' != PackageManager.PERMISSION_GRANTED) { Log.d ("TEST", "You don't have permission"); }
(O algo cercano a esto) como el ejemplo de https://developer.android.com/training/permissions/requesting.html
- Android – ¿Cómo configurar un diseño semi-transparente?
- Teclado emergente teclado personalizado de Android en prensa larga