android - permission - Diferencia entre usos-permiso-sdk-23 y usos-permiso?
permissions manifest android (6)
Acabo de conocer una nueva etiqueta en el archivo de manifiesto de Android llamado " uses-permission-sdk-23 "
<uses-permission-sdk-23 android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.CAMERA" />
¿Alguien por favor puede proporcionar la diferencia entre estos dos?
Resumen
<uses-permission>
aplica a todos los SDK y <uses-permission-sdk-23>
aplicará el permiso solo a SDK 23+.
¿Cuándo debería usar <uses-permission-sdk-23>
?
Para Android SDK 23 y superior, tiene la opción de solicitar el permiso en tiempo de ejecución, pero los permisos estarán en su estado predeterminado al momento de la instalación y no se le pedirá al usuario que lo haga. (Esencialmente, esto se puede usar para pedirle al usuario que otorgue el permiso según la necesidad de usar y usted tiene la oportunidad de proporcionar una explicación de por qué es necesario).
Sin embargo, para el SDK 22 y versiones anteriores, se le solicita al usuario en la instalación los permisos. Como algunos permisos pueden parecer sospechosos o dudosos para el usuario, es posible que no desee solicitarlos para el SDK 22 y anteriores, ya que no puede explicar por qué los necesita de antemano, por lo tanto,
<uses-permission-sdk-23>
etiqueta.Además, la documentación no tiene claro si
sdk-23
permisossdk-23
también hacen que la aplicación se filtre en la Play Store, pero si fue su intención hacerlo, la documentación recomienda que utilice los elementos<uses-feature>
lugar. Declarar compatibilidad de hardware.
Recomendación
En general, se considera una práctica recomendada utilizar <uses-permission-sdk-23>
si su aplicación no necesita ser compatible con el SDK 22 o inferior, o si el permiso que solicita no es necesario para el SDK 22 o inferior como lo es entonces. Claro que este permiso se solicita en tiempo de ejecución.
De lo contrario, se debe utilizar <uses-permission>
ya que es compatible con versiones anteriores y el comportamiento será correcto en cualquier versión de SDK; 22 y más abajo, se solicitarán permisos en la instalación. 23 y superior, depende de usted solicitar en tiempo de ejecución.
Debe solicitar permisos en tiempo de ejecución siempre que sea posible, ya que le permite explicar a su usuario por qué necesita ciertos permisos en lugar de simplemente pedirles una lista de permisos en el momento de la instalación cuando es probable que el usuario no haya establecido confianza en la aplicación.
Notas
Ambos aceptan un atributo maxSdkVersion
que puede usarse cuando se requiere un permiso para dispositivos más antiguos, pero no para dispositivos más nuevos. (Por ejemplo, el ejemplo WRITE_EXTERNAL_STORAGE
muestra en la documentación de Android).
Referencia: (Documentación Android)
Al utilizar el elemento <uses-permission-sdk-23>
lugar de <uses-permission>
, puede solicitar el permiso solo si la aplicación se ejecuta en plataformas que admiten el modelo de permisos de tiempo de ejecución, en el que el usuario otorga permisos a la aplicación. mientras se está ejecutando.
Esto se ha introducido para admitir la función de permiso de tiempo de ejecución de Marshmallow (API-23) en adelante.
Esto simplemente especifica que una aplicación quiere un permiso en particular, pero solo si la aplicación se ejecuta en un dispositivo con SDK versión 23 o superior. Si el dispositivo ejecuta SDK versión 22 o inferior, la aplicación no tiene el permiso especificado. Este elemento es útil cuando actualiza una aplicación para incluir una nueva función que requiere un permiso adicional. Si un usuario actualiza una aplicación en un dispositivo que ejecuta SDK versión 22 o inferior, el sistema solicita al usuario en el momento de la instalación que otorgue todos los permisos nuevos que se declaran en esa actualización.
Puede referirse a la documentation .
Especifica que una aplicación desea un permiso en particular, pero solo si la aplicación se ejecuta en un dispositivo con nivel de API 23 o superior. Si el dispositivo está ejecutando un nivel de API 22 o inferior, la aplicación no tiene el permiso especificado.
user-permission-sdk-23 especifica que la aplicación que desea un permiso en particular se ejecuta en SDK versión 23 o superior. Se utiliza cuando actualiza su aplicación para ejecutar elementos del SDK 23 y los usuarios que ejecutan una API inferior que no es compatible con los nuevos elementos.
ver la documentación utiliza permiso
Utilizar
<uses-permission-sdk23>
para aplicar permiso para dispositivos Marshmallow solamente.
si la aplicación se está ejecutando en un dispositivo con SDK versión 23 o superior. Si el dispositivo está ejecutando SDK versión 22 o inferior
cuando actualiza una aplicación para incluir una nueva característica que requiere un permiso adicional. Si un usuario actualiza una aplicación en un dispositivo que ejecuta SDK versión 22 o inferior, el sistema solicita al usuario en el momento de la instalación que otorgue todos los permisos nuevos que se declaran en esa actualización. Si una nueva función es lo suficientemente pequeña, es posible que prefiera deshabilitarla por completo en esos dispositivos, para que el usuario no tenga que otorgar permisos adicionales para actualizar la aplicación. Usando el elemento uses-permission-sdk-23 en lugar de uses-permission
puede solicitar el permiso solo si la aplicación se está ejecutando en plataformas que admiten el modelo de permisos de tiempo de ejecución, en el que el usuario otorga permisos a la aplicación mientras se está ejecutando.
Para más información refiérase a esto. usos - Permiso sdk 23