您的位置:

深入理解Android权限系统 - uses-permission

Android系统架构设计下,权限管理是其核心思想之一,Android引入了权限管理机制,使得开发者可以在其应用程序中声明需要访问的权限以及限制其他应用程序访问其敏感数据。其中,uses-permission在权限管理中扮演了重要的角色。

一、usesPermissionFlags

usesPermissionFlags是一个用于向Android系统表明其访问某种权限时所需的标志位的元素。在声明的时候,它需要在uses-permission标签中添加android:flags标签,并在其中列出每个标志。flags的类型为int。

<manifest ...>
    <uses-permission android:name="android.permission.WRITE_SETTINGS"
        android:label="string resource"
        android:description="string resource"
        android:icon="drawable resource"
        android:permissionGroup="string resource"
        android:protectionLevel="normal" android:flags="int">
    </uses-permission>
</manifest>

其中,android:flags="int",int是一个从以下列表中选择的整数值的拼接:

1、REQUEST_IGNORE_BATTERY_OPTIMIZATIONS:请求省电模式忽略(this is to request that the app be whitelisted from being affected by battery optimizations like Doze mode)

2、REQUEST_INSTALL_PACKAGES:请求安装应用程序

3、REQUEST_DELETE_PACKAGES:请求删除应用程序

4、REQUEST_IGNORE_BACKGROUND_DATA_SETTINGS:请求忽略后台数据设置

5、REQUEST_WIPE_DATA:请求擦除设备的所有数据

二、uses permission android

uses permission android 用于表明某个应用程序需要使用的权限。在AndroidManifest.xml文件的manifest元素中声明。在uses-permission元素中复用它,如下:

<manifest package="string"
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:installLocation=["auto"|"internalOnly"|"preferExternal"]>
    ...
    <uses-permission android:name="string"/>
    <permission android:name="string"
        android:label="string resource"
        android:description="string resource"
        android:permissionGroup="string resource"
        android:protectionLevel=["normal"|"dangerous"|
                                 "signature"|"signatureOrSystem"] />
    <permission-tree android:name="string"
        android:label="string resource"
        android:description="string resource"
        android:permissionGroup="string resource"
        android:protectionLevel=["normal"|"dangerous"|
                                 "signature"|"signatureOrSystem"] />
    <permission-group android:name="string"
        android:label="string resource"
        android:description="string resource"
        android:priority="integer"
        android:icon="drawable resource" />
    ...
</manifest>

其中,uses permission android的属性包括:

1、android:name
应用所请求的权限的名称,例如android.permission.READ_CONTACTS。

2、android:maxSdkVersion
指定该权限适用的最高SDK版本

3、android:minSdkVersion
指定该权限适用的最低SDK版本

4、android:required
是否将该权限视为内置到应用中

5、android:supportsRtl
表明您的应用程序支持从右到左的布局。

三、uses permission

uses permission是一个必需元素,用于表明应用程序需要哪些权限,这将在Android系统上运行。以下是一个例子:

<manifest package="string"
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:sharedUserId="string"
      android:sharedUserLabel="string resource"
      android:versionCode="integer"
      android:versionName="string"
      android:installLocation=["auto"|"internalOnly"|"preferExternal"]>
        <uses-sdk android:minSdkVersion="integer"
          android:targetSdkVersion="integer"
          android:maxSdkVersion="integer" />
        <uses-configuration />
        <uses-feature android:name="string"
          android:glEsVersion="integer" 
          android:required=["true"|"false"] />
        <uses-permission android:name="string"
          android:maxSdkVersion="integer"
          android:minSdkVersion="integer"
          android:required=["true"|"false"]
          android:protectionLevel=["normal"|"dangerous"|
                                   "signature"|"signatureOrSystem"] />
        <permission android:name="string"
          android:permissionGroup="string"
          android:protectionLevel=["normal"|"dangerous"|"signature"|"signatureOrSystem"]>
       ...
</manifest>

uses permission的一些属性包括:

1、android:name
应用所请求的权限的名称,例如android.permission.READ_CONTACTS。

2、android:maxSdkVersion
指定该权限适用的最高SDK版本

3、android:minSdkVersion
指定该权限适用的最低SDK版本

4、android:required
是否将该权限视为应用程序的一部分

5、android:protectionLevel
指定此权限的保护级别

四、总结

在Android权限管理中,uses-permission扮演了重要的角色。使用uses-permission,可以指定应用程序需要哪些权限;通过uses permission android,可以申请需要使用的权限;使用usesPermissionFlags可以为权限增加标志位,在访问时加以区分不同的权限。

深入理解Android权限系统 - uses-permiss

2023-05-21
Android权限详解

2023-05-17
Android权限大全

2023-05-18
Android 6.0新特性:权限管理系统改善用户体验

2023-05-14
Permission缩写详解

2023-05-23
详解Android动态权限

2023-05-16
Android 权限申请的全面指南

2023-05-23
Android权限管理:实现对文件的读写操作

2023-05-14
Android蓝牙权限详解

2023-05-22
Android应用权限管理对话框

一、权限管理对话框的作用 Android 授权管理对话框是Android 系统的一个重要特征,允许用户检查和控制应用程序的权限。它是一种有效的权限控制方式,允许用户在运行时控制应用程序的权限,以保障用

2023-12-08
Android权限管理

2023-05-23
Android Permission:权限管理及安全性控制

一、权限管理的重要性 Android作为目前智能手机领域最广泛使用的操作系统之一,提供了丰富的API供开发人员使用。这些API中包含了许多权限,以访问设备上的敏感数据和功能。然而,挑战在于如何平衡用户

2023-12-08
Android 权限列表及使用场景

Android 提供了丰富的权限控制机制,应用可以通过系统 API 来获取用户授权后使用各种系统功能,如访问网络、读取手机信息、使用摄像头等等。在开发 Android 应用时,了解各种权限的含义和使用

2023-12-08
如何为Android应用添加相册访问权限

2023-05-14
如何在Android中动态申请权限

2023-05-16
Android相册权限控制

2023-05-19
如何在Android应用中获取文件读写权限

2023-05-14
掌握Android定位权限,让应用实现精准定位

一、Android定位权限介绍 现代移动应用十分重视位置数据的采集和使用,依赖于定位需求,越来越多的应用开始使用高精度的定位技术来获取用户的位置信息。而在Android系统中,设备通过一些方式来获取位

2023-12-08
Android权限申请及限制

2023-05-17
Android动态权限申请

2023-05-16