<uses-permission>
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Nota: En algunos casos, los permisos que solicitas a través de <uses-permission>
pueden afectar la forma en que Google Play filtra tu aplicación. Si solicitas un permiso relacionado con hardware, como CAMERA
, Google Play asume que tu aplicación requiere la función de hardware subyacente y filtra la aplicación en dispositivos que no la ofrecen.
Para controlar el filtrado, siempre debes declarar de manera explícita las funciones de hardware en los elementos <uses-feature>
en lugar de esperar que Google Play "descubra" los requisitos en los elementos <uses-permission>
. Después, si quieres inhabilitar el filtrado para una función determinada, puedes agregar un atributo android:required="false"
a la declaración <uses-feature>
.
Para obtener una lista de permisos que implican funciones de hardware, consulta la documentación relacionada con el elemento <uses-feature>
.
- sintaxis:
<uses-permission android:name="string"
android:maxSdkVersion="integer" />
- se incluye en:
<manifest>
- descripción:
- Especifica un permiso de sistema que el usuario debe otorgar para que la app funcione correctamente. El usuario otorga permisos cuando se instala la aplicación, en dispositivos con Android 5.1 o versiones anteriores, o mientras se ejecuta la app, en dispositivos con Android 6.0 o versiones posteriores.
Para obtener más información sobre los permisos, consulta la sección Permisos en la descripción general del manifiesto de la app y la guía Permisos en Android.
En android.Manifest.permission
, se encuentra una lista de permisos definidos por la plataforma base.
- atributos:
android:name
- Es el nombre del permiso. Puede ser un permiso definido por la aplicación con el elemento
<permission>
, un permiso definido por otra aplicación o uno de los permisos de sistema estándares (como "android.permission.CAMERA"
o "android.permission.READ_CONTACTS"
). Como se muestra en estos ejemplos, en el nombre de un permiso generalmente se incluye el nombre del paquete como prefijo.
android:maxSdkVersion
- Es el nivel de API más alto en el que se debe otorgar este permiso a tu app. Resulta útil establecer este atributo si el permiso que requiere tu app ya no es necesario a partir de un determinado nivel de API.
Por ejemplo, a partir de Android 4.4 (nivel de API 19), ya no es necesario que tu app solicite el permiso WRITE_EXTERNAL_STORAGE
para escribir en sus propios directorios específicos de la aplicación en el almacenamiento externo, que proporcionagetExternalFilesDir()
.
Sin embargo, el permiso es necesario hasta el nivel de API 18. Por lo tanto, puedes declarar que este permiso es necesario solamente hasta el nivel de API 18 con una declaración como la siguiente:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
De esta manera, a partir del nivel de API 19, el sistema ya no otorga a tu app el permiso WRITE_EXTERNAL_STORAGE
.
Se agregó en el nivel de API 19.
- primera inclusión:
- Nivel de API 1
- consulta también:
-
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[null,null,["Última actualización: 2025-07-27 (UTC)"],[],[],null,["# <uses-permission\u003e\n\n**Note:** In some cases, the permissions that you request\nthrough `\u003cuses-permission\u003e` can affect how Google Play filters your\napplication. If you request a hardware-related permission, such as\n`CAMERA`, Google Play assumes that your\napplication requires the underlying hardware feature and filters the application\nfrom devices that don't offer it.\n\nTo control filtering, always explicitly declare\nhardware features in `\u003cuses-feature\u003e` elements, rather than\nrelying on Google Play to \"discover\" the requirements in\n`\u003cuses-permission\u003e` elements. Then, if you want to disable\nfiltering for a particular feature, you can add a\n`android:required=\"false\"` attribute to the\n`\u003cuses-feature\u003e` declaration.\n\nFor a list of permissions that imply\nhardware features, see the documentation for the [`\u003cuses-feature\u003e`](/guide/topics/manifest/uses-feature-element#permissions-features) element.\n\nsyntax:\n:\n\n ```xml\n \u003cuses-permission android:name=\"string\"\n android:maxSdkVersion=\"integer\" /\u003e\n ```\n\ncontained in:\n: [\u003cmanifest\u003e](/guide/topics/manifest/manifest-element)\n\ndescription:\n\n: Specifies a system permission that the user must grant for the app to operate correctly. The user grants permissions when the application installs, on devices running Android 5.1 and lower, or while the app runs, on devices running Android 6.0 and higher.\u003cbr /\u003e\n\n\n For more information on permissions, see the\n [Permissions](/guide/topics/manifest/manifest-intro#perms)\n section in the app manifest overview and the\n [Permissions on Android](/guide/topics/permissions) guide.\n A list of permissions defined by the base platform is at\n [android.Manifest.permission](/reference/android/Manifest.permission).\n\nattributes:\n:\n\n `android:name`\n : The name of the permission. It can be a permission defined by the\n application with the [\u003cpermission\u003e](/guide/topics/manifest/permission-element)\n element, a permission defined by another application, or one of the\n standard system permissions, such as\n [\"android.permission.CAMERA\"](/reference/android/Manifest.permission#CAMERA)\n or [\"android.permission.READ_CONTACTS\"](/reference/android/Manifest.permission#READ_CONTACTS). As these examples show,\n a permission name typically includes the package name as a prefix.\n\n `android:maxSdkVersion`\n\n : The highest API level at which this permission is granted to your app. Setting this attribute is useful if the permission your app requires is no longer needed beginning at a certain API level.\u003cbr /\u003e\n\n For example, beginning with Android 4.4 (API level 19) it's no longer necessary for your app\n to request the [WRITE_EXTERNAL_STORAGE](/reference/android/Manifest.permission#WRITE_EXTERNAL_STORAGE)\n permission to write to its own application-specific directories on external storage, which are\n provided by [getExternalFilesDir()](/reference/android/content/Context#getExternalFilesDir(java.lang.String)).\n\n However,\n the permission *is required* for API level 18 and lower. So you can declare that this\n permission is needed only up to API level 18 with a declaration like the following: \n\n ```xml\n \u003cuses-permission\n android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"\n android:maxSdkVersion=\"18\" /\u003e\n ```\n\n This way, beginning with API level 19, the system no longer grants your app the\n `WRITE_EXTERNAL_STORAGE` permission.\n\n Added in API level 19.\n\nintroduced in:\n: API level 1\n\nsee also:\n:\n - [\u003cpermission\u003e](/guide/topics/manifest/permission-element)\n - [`\u003cuses-permission-sdk-23\u003e`](/guide/topics/manifest/uses-permission-sdk-23-element)\n - [\u003cuses-feature\u003e](/guide/topics/manifest/uses-feature-element)"]]