riesgosos - Pocas preguntas sobre permisos personalizados en Android
permisos gps android studio (1)
Las respuestas a sus preguntas se dan a continuación. Pero puede consultar http://developer.android.com/guide/topics/manifest/permission-element.html para una mejor comprensión de los permisos de Android.
1.Sí, si lo declara.
android:protectionLevel="dangerous"
entonces el sistema puede no otorgarlo automáticamente a la aplicación solicitante. Cualquier permiso peligroso solicitado por una aplicación puede ser mostrado al usuario y debe ser confirmado antes de continuar.
La aplicación base que define el permiso personalizado debe proporcionar una descripción a través de
android:description="string resource"
Aquí está la definición de un permiso de ejemplo. Espero que sea auto explicativo.
<permission android:description="string resource"
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:permissionGroup="string"
android:protectionLevel=["normal" | "dangerous" |
"signature" | "signatureOrSystem"] />
2. Por lo que sé, no hay forma de que la aplicación cliente vea la presencia de la aplicación base en el momento de la instalación. Pero es posible cuando se inicia la aplicación cliente. De todos modos, el sistema Android otorga los permisos según su archivo android.xml. Por lo tanto, la aplicación cliente no tiene que preocuparse por la aplicación base en el momento de la instalación.
3. La aplicación base puede eliminarse incluso cuando la aplicación cliente aún está instalada. No lo hará a través de ningún mensaje de error o excepción de seguridad en ninguna etapa. Pero cuando intenta ejecutar la aplicación cliente nuevamente, puede obtener una excepción de "Actividad no encontrada" en el punto en el que intenta llamar a una actividad base desde la aplicación cliente.
Estoy aprendiendo programación de Android y he entendido el concepto de permiso personalizado.
Según mi comprensión, esto es cómo funcionan los permisos personalizados:
''Base app''
puede proteger algunos de sus componentes (p. Ej., Actividad y servicios) mediante la declaración de permisos personalizados (es decir, mediante el uso de etiquetas <permission>
en el archivo de manifiesto) y la ''client app''
que llama a las actividades y servicios protegidos por permisos personalizados. debe adquirir los permisos necesarios (es decir, usar las etiquetas <uses-permission>
en el archivo de manifiesto) para llamar a esos componentes en la base app
.
Sin embargo, tengo estas preguntas con respecto a los permisos personalizados:
- Si el permiso personalizado se declara peligroso (es decir,
android:protectionLevel="dangerous"
), ¿laclient app
necesita obtener la aprobación del usuario durante el tiempo de instalación? Si es así, ¿cómo sabe el usuario estos permisos personalizados porque no habrá ninguna documentación para los permisos personalizados? - Durante el tiempo de instalación, ¿cómo sabe la
client app
que labase app
ya está instalada en el teléfono del usuario? ¿Hay alguna forma para que laclient app
sepa esta información? - Una vez que se instale la
client app
, ¿qué sucederá si el usuario decide eliminar labase app
? En este caso, si el usuario intenta usarclient app
¿causará alguna excepción de seguridad?
No sé si estas preguntas tienen sentido, pero me pregunto cómo funcionan realmente los permisos personalizados en un escenario real.
Gracias.