¿Cómo encontrar los permisos requeridos de tiempo de ejecución de Marshmallow de Android en el código?

Estoy preparando mi aplicación para orientar a Android 6.0 Marshmallow.

Al establecer la api de destino a 23, la aplicación se bloquea inmediatamente al iniciar. No hay información útil en la salida logcat. (Da una "ventana solicitada no existe" IllegalStateException, pero aún así, nada realmente útil como nombre de clase o número de línea.)

Esto está muy bien (no realmente), que eventualmente se redujo a mi actividad de lanzamiento en la que obtener el dispositivo del usuario IMEI código (TelephonyManager.getDeviceId ()). Es necesario que se añada una solicitud de permiso de tiempo de ejecución. Entiendo esto.

Sin embargo, la aplicación tiene algo así como 60 clases en numerosas actividades, por lo que hay un montón de código para ordenar. ¿Cómo puedo buscar en el código para encontrar todos los casos en los que se requieren permisos de tiempo de ejecución?

Seguramente Google debe haber pensado en una manera fácil para los desarrolladores para rastrear donde se requieren las solicitudes de permiso? Pensé que tal vez comentar los permisos en el manifiesto desencadenaría un error en tiempo de compilación donde se utilizan los permisos, o algo parecido, pero no.

Mi método actual es pasar por la aplicación y cuando se bloquea, hacer como el anterior con mi actividad de lanzamiento y muy lentamente estrecha donde está. Esto es extremadamente ineficiente y requiere mucho tiempo. Estoy tentado a dejarlo en API 22 por ahora, pero sé que tarde o temprano esto tendrá que ser hecho.

Eliminar todo el permiso de AndroidManifest.xml.
Analizar -> Ejecutar inspección por nombre -> Constant and Resource Type Mismatches en Android Studio.
Puede detectar el permiso.
imagen

Pero esta detección no es perfecta …
Porque detecta sólo el método que contiene estos archivos xmls.
https://android.googlesource.com/platform/tools/adt/idea/+/master/android/annotations/android
https://android.googlesource.com/platform/tools/adt/idea/+/master/android/annotations/android/accounts/annotations.xml#118

  • Los usuarios de Android sin cámaras en sus dispositivos no pueden descargar mis aplicaciones de Google Play. ¿Por qué?
  • ¿Cómo lidiar con la eliminación de un permiso para un receptor de difusión en Android M?
  • Forzar la aplicación a reiniciar desde la primera Actividad (cuando se deniega un permiso)
  • El cambio de permiso dinámico de marshmallow de Android mata todos los procesos de aplicación
  • Android Añadir <uses-feature> en Manifest
  • BroadcastReceiver permiso para el shell de adb
  • ¿Cuál es la mejor manera de comprobar los permisos en tiempo de ejecución mediante la arquitectura MVP?
  • Cómo conceder permisos sólo al creador de un URI
  • Obtener detalles del permiso mediante programación
  • ¿Permisos opcionales para que una aplicación pueda mostrarse en todos los dispositivos y activar funciones opcionales en algunos?
  • El programa Bluetooth de Android 6.0 no puede descubrir los dispositivos Bluetooth disponibles
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.