Struct android_manifest::UsesPermission
source · pub struct UsesPermission {
pub name: Option<String>,
pub max_sdk_version: Option<u32>,
}
Expand description
Specifies a system permission that the user must grant in order for the app to operate correctly.
Permissions are granted by the user when the application is installed (on devices
running Android 5.1 and lower) or while the app is running (on devices running Android
6.0 and higher). For more information on permissions, see the Permissions
section
in the introduction and the separate System Permissions
API guide. A list of
permissions defined by the base platform can be found at
android.Manifest.permission
.
Note
In some cases, the permissions that you request through
<uses-permission>
can affect how your application is filtered by Google Play.
If you request a hardware-related permission — CAMERA
, for example — Google Play
assumes that your application requires the underlying hardware feature and filters the
application from devices that do not offer it.
To control filtering, always explicitly declare hardware features in <uses-feature>
elements, rather than relying on Google Play to “discover” the requirements in
<uses-permission>
elements. Then, if you want to disable filtering for a particular
feature, you can add a android:required
=“false
” attribute to the
For a list of permissions that imply hardware features, see the documentation for the
<uses-feature>
element.
XML Syntax
<uses-permission android:name="string"
android:maxSdkVersion="integer" />
Contained in
Introduced in
API Level 1
Fields§
§name: Option<String>
The name of the permission. It can be a permission defined by theapplication with
the <permission>
element, a permission defined by another application, or
one of the standard system permissions (such as android.permission.CAMERA
or android.permission.READ_CONTACTS
). As these examples show, a
permission name typically includes the package name as a prefix.
max_sdk_version: Option<u32>
The highest API level at which this permission should be 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.
XML Examples
Beginning with Android 4.4 (API level 19), it’s no longer necessary for your app
to request the WRITE_EXTERNAL_STORAGE
permission when your app wants to
write to its own application-specific directories on external storage (the
directories provided by getExternalFilesDir()
). However, the permission is
required for API level 18 and lower. So you can declare that this permission
is needed only up to API level 18 with a declaration such as this:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
This way, beginning with API level 19, the system will no longer grant your app
the WRITE_EXTERNAL_STORAGE
permission.
This attribute was added in API level 19.
Trait Implementations§
source§impl Clone for UsesPermission
impl Clone for UsesPermission
source§fn clone(&self) -> UsesPermission
fn clone(&self) -> UsesPermission
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for UsesPermission
impl Debug for UsesPermission
source§impl Default for UsesPermission
impl Default for UsesPermission
source§fn default() -> UsesPermission
fn default() -> UsesPermission
source§impl<'de> Deserialize<'de> for UsesPermission
impl<'de> Deserialize<'de> for UsesPermission
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
source§impl PartialEq<UsesPermission> for UsesPermission
impl PartialEq<UsesPermission> for UsesPermission
source§fn eq(&self, other: &UsesPermission) -> bool
fn eq(&self, other: &UsesPermission) -> bool
self
and other
values to be equal, and is used
by ==
.