android打开应用权限管理,声明应用权限  |  Android 开发者  |  Android Developers

本文介绍了Android应用如何声明和管理权限。应用需要在清单文件中声明权限,系统会根据权限类型在安装时或运行时进行授权。对于Android 6.0及以上版本,运行时权限需要通过代码请求。同时,建议只声明必要的权限,并考虑硬件可选项以扩大设备兼容性。使用`hasSystemFeature()`方法可检测硬件是否存在,以便在缺少硬件时优雅地降级应用体验。
摘要由CSDN通过智能技术生成

如权限使用工作流程所述,如果您的应用要请求应用权限,您必须在应用的清单文件中声明这些权限。这些声明可帮助应用商店和用户了解您的应用可能会请求的权限组合。

执行权限请求的过程取决于权限类型:

如果是安装时权限(例如普通权限或签名权限),系统会在安装您的应用时自动为其授予相应权限。

如果是运行时权限,并且您的应用安装在搭载 Android 6.0(API 级别 23)或更高版本的设备上,则您必须自己请求权限。

注意:请仔细考虑您要在应用清单中声明哪些权限。仅添加您的应用需要的权限。对于应用请求的每项权限,请确保它能为用户提供明确的好处,并且请求方式对用户来说清楚明晰。

向应用清单添加声明

如需声明应用可能请求的权限,请在应用的清单文件中添加相应的 元素。例如,需要访问相机的应用应在清单中添加以下代码行:

AndroidManifest.xml

...

将硬件声明为可选

某些权限(例如 CAMERA)可让您的应用访问只有部分 Android 设备具有的硬件组件。如果您的应用声明了这类硬件相关权限,请考虑您的应用在没有该硬件的设备上会不会完全无法运行。在大多数情况下,硬件是可选的,因此最好在 声明中将 android:required 设置为 false,从而将硬件声明为可选项,如以下代码段所示:

AndroidManifest.xml

...

android:required="false" />

注意:如果您未在 声明中将 android:required 设置为 false,则 Android 会假定您的应用必须在有该硬件的情况下才能运行。因此,系统会阻止某些设备安装您的应用。

确定硬件可用性

如果您将硬件声明为可选,您的应用在没有该硬件的设备上也可以运行。要检查设备是否具有特定的硬件,请使用 hasSystemFeature() 方法,如以下代码段所示。如果设备不具有该硬件,只需在您的应用中停用此功能即可。

Kotlin

// Check whether your app is running on a device that has a front-facing camera.

if (applicationContext.packageManager.hasSystemFeature(

PackageManager.FEATURE_CAMERA_FRONT)) {

// Continue with the part of your app's workflow that requires a

// front-facing camera.

} else {

// Gracefully degrade your app experience.

}Java

// Check whether your app is running on a device that has a front-facing camera.

if (getApplicationContext().getPackageManager().hasSystemFeature(

PackageManager.FEATURE_CAMERA_FRONT)) {

// Continue with the part of your app's workflow that requires a

// front-facing camera.

} else {

// Gracefully degrade your app experience.

}

按 API 级别声明权限

如需仅针对支持运行时权限的设备(即搭载 Android 6.0(API 级别 23)或更高版本的设备)声明某项权限,请添加 uses-permission-sdk-23(而非 uses-permission)元素。

不论使用这两个元素中的哪一个,您都可以设置 maxSdkVersion 属性。

该属性表示设备搭载的系统版本高于 maxSdkVersion 时不需要特定权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值