1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
use ;
/// 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 <uses-feature>
/// declaration.
///
/// For a list of permissions that imply hardware features, see the documentation for the
/// [`<uses-feature>`] element.
///
/// ## XML Syntax
/// ```xml
/// <uses-permission android:name="string"
/// android:maxSdkVersion="integer" />
/// ```
///
/// ## Contained in
/// * [`<manifest>`]
///
/// ## Introduced in
/// API Level 1
///
/// [`Permissions`]: https://developer.android.com/guide/topics/manifest/manifest-intro#perms
/// [`System Permissions`]: https://developer.android.com/guide/topics/permissions/overview
/// [`android.Manifest.permission`]: https://developer.android.com/reference/android/Manifest.permission
/// [`<uses-feature>`]: https://developer.android.com/guide/topics/manifest/uses-feature-element#permissions-features
/// [`<manifest>`]: crate::AndroidManifest