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.
- Aplicación de Android + Módulo de Java (Java 1.8)
- Bibliotecas puras de codificación / decodificación de vídeo java
- Obtener foto de perfil de facebook y establecer en imageview
- Establezca la altura y el ancho de los botones como contenido de ajuste y relleno de los padres
- ¿Cómo iniciar la aplicación Telegram desde mi propia aplicación Android?
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.
- ¿Existe una clase integrada de Android para crear XML de forma no continua?
- Android java cómo hacer un texto de edición transparente, pero el texto sigue siendo visible?
- Cómo depurar el módulo de la biblioteca android en Android Studio?
- Java La importación com.google no se puede resolver
- Fragmentos y notificaciones: Objetivo diferentes actividades de notificación; Dependiendo de la configuración de la pantalla
- ¿Cuál es una forma adecuada de obtener los valores de un JSON Volley requset?
- Añadiendo Admob a Libgdx juego
- EXCEPCIÓN INESPERADA DE SUPERIOR NIVEL: com.android.dex.DexException
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)