Android, encuentra todos los lugares en código para solicitar permisos
Estoy trabajando en una aplicación para dispositivos pre-Marshmallow. El código fuente no fue escrito por mí y el proyecto en sí es bastante grande. Actualmente estoy haciendo la aplicación para solicitar permisos cuando sea necesario.
La pregunta es: ¿Cómo encontrar todos los lugares en el código donde se debe pedir permiso? Estoy usando Android Studio.
- ¿Cómo leer todos los bytes juntos vía Bluetooth?
- Android Studio se ejecuta en Windows 7 64bit falla
- Ejecutar aplicación dos veces para trabajar
- Excepciones de Android que manejan la mejor práctica?
- Mensajes androide logcat invisibles en eclipse
EDITAR
Algunas personas sugieren cambiar api a 23 y sólo ejecutar la aplicación y ver los lugares donde se bloquea. El problema es que la aplicación no se bloquea en todos los lugares.
Por ejemplo, ejecutar este código sin un permiso bloqueará la aplicación:
TelephonyManager manager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE);
Mientras que éste acaba de devolver una matriz vacía, en lugar de estrellarse.
final String[] SELF_PROJECTION = new String[]{ ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,}; Cursor cursor = context.getContentResolver() .query(ContactsContract.Profile.CONTENT_URI, SELF_PROJECTION, null, null, null);
Además, Android Lint no muestra estos lugares. No estoy seguro de si debería serlo.
- Guardando colecciones de niños con OrmLite en Android con objetos creados de Jackson
- Cómo colocar la imagen de marca de pin en una imagen en android?
- Cómo ejecutar "callOnClick ()" para Android API 8?
- Código fuente y repo de Android - ¿Qué está ocurriendo exactamente al obtener el código
- Diferencia entre SparseArray Vs ArrayList?
- Android websocket sockjs cliente para java primavera basada webserver
- FIleNotFound abierto falló: EACCES (Permiso denegado)
- Thread / Handler error - El token de barrera de sincronización de cola de mensajes especificado no se ha publicado
Según la página del desarrollador con respecto a los permisos de seguridad :
En casi todos los casos, sin embargo, un fallo de permiso se imprimirá en el registro del sistema.
Por lo tanto, ejecute la aplicación y busque en el registro "permisos" o similar.
Utilice la prueba de unidad para garantizar la cobertura de todos los lugares en el código donde se pueden requerir permisos.
Añadir
lintOptions { enable 'MissingPermission' }
En su build.gradle
. Esto mostrará advertencias después de crear su aplicación.
Claro, compilar orientación api 23, no agregar en el código de permisos, ejecutar la aplicación y ver dónde se bloquea.
Una vez que empieces a localizar las ubicaciones, invierte los permisos (a través de la configuración de la aplicación) para que puedas pasar esa pantalla y luego desactivarlas para que puedas ver si se bloquea.
Logcat es bastante descriptivo al hacerle saber que los permisos se niegan …
Usted puede hacer este truco: eliminar los permisos peligrosos del manifiesto. De esta manera, puedes probar prácticamente cualquier dispositivo, estarás seguro de que se bloqueará y encontrarás los lugares exactos donde necesitas esos permisos. Así es como lo hice de todos modos.
Solicite todos los permisos que desea en el primer inicio de su aplicación.
No es una Buenas Prácticas , pero es una respuesta de esta pregunta.
- EXCEPCIÓN FATAL: ZoomTableManager
- ¿Por qué no funciona mi servicio en Android? (Sólo quiero registrar algo nunca 5 segundos)