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.

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.

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.

  • GetText (). ToString () vs (String) getText ()
  • ¿Es una mala idea usar printStackTrace () en Android Exceptions?
  • ¿Qué es LogCat en Eclipse?
  • Android Studio: Buildtools 24.0.1 requiere Java 1.8 o superior.
  • Cómo mover el elemento específico en la lista de arreglos al primer elemento
  • Protocolos de alto nivel para Bluetooth / WiFi Direct Sockets?
  • Cadena de byte con UTF-8 da diferentes resultados en Android que en Windows JVM
  • Eclipse ejecuta el modo de depuración incluso cuando hago clic en "ejecutar"
  • Mensaje de notificación de AudioTrack corriente
  • Android: SSLException: No se pueden crear datos de la aplicación + conexión HTTPS múltiple
  • <S3dReadConfigFile: 75>: No se puede abrir el archivo para error de lectura
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.