Android – ¿Cómo conozco todos los métodos que requieren un cierto permiso?
Trabajo en un proyecto que actualmente pide 21 (!) Permisos.
Quiero limpiar eso, ya que creo que muchos de ellos no son necesarios (por ejemplo, hay un permiso para android.permission.CALL_PHONE
que se puede eliminar como casi lo mismo se puede lograr con un Intent
con ACTION_DIAL
).
- Algunas preguntas sobre el permiso "USE_CREDENTIALS"
- Advertencias Su apk está utilizando permisos que requieren una política de privacidad: (android.permission.READ_PHONE_STATE)
- Los teléfonos de Redmi no piden permisos de SMS y por lo tanto no leen sms
- ¿Están gradle tools: selector for permissions works ever?
- Permisos de aplicaciones en Android Marshmallow en PhoneGap
Lo que quiero saber es una forma de, dado un permiso (por ejemplo, android.permission.AUTHENTICATE_ACCOUNTS
) encontrar todos los métodos que requieren que el permiso .
Tenga en cuenta que lo contrario es fácil, es decir, dado un método, es fácil de encontrar si ese método requiere cualquier permiso (sólo tienes que ir a la documentación y comprobar), pero ¿qué pasa al revés?
- ¿Cómo comprobar el permiso se concede para una ruta de directorio y no abre el error EACCES?
- OnRequestPermissionsResult se llama infinitamente
- Permiso: INJECT_EVENTS para Instrumenation a otras aplicaciones
- ¿Cómo implementar ContentProvider de sólo lectura?
- Obtener los permisos del sistema de Android al poner la aplicación en / system / app?
- Todos los permisos de mi aplicación se revocan después de presionar "Restablecer las preferencias de la aplicación"
- Unidad de pruebas de Android y permisos
- ¿Cómo eliminar el permiso específico al crear una aplicación para Android con gradle?
Aquí puede encontrar todos los métodos que PScout encontró que requieren los permisos de Android. PScout fue una herramienta que hizo este trabajo en particular que necesita, pero el sitio web original está desconectado.
Resultados de PScout: mapa de los permisos y métodos de Android que requieren esos permisos
De ninguna otra manera el compilador le avisaría si no ha establecido un permiso. No, en su lugar, la aplicación sólo se bloquea en tiempo de ejecución.
Lo siento, pero tienes que recorrer el largo camino y buscar métodos que crees que pueden necesitar permisos y delet ellos
Después de investigar esto de nuevo, me encontré con una pregunta similar sobre SO. Ben Holland explica que hay 2 estudios realizados sobre este problema. Ninguna de las soluciones propuestas son 100% impecables, pero es lo mejor que tenemos hasta ahora.
Más detalles en: https://stackoverflow.com/a/24019120/1369016