MAUI实战 - MAUI基础 - MAUI基础练习
MAUI应用获取权限、检查权限状态
Permissions类,位于命名空间Microsoft.Maui.ApplicationModel 下,使用Permissions类可以在运行时检查和获取权限。Permissions是一个静态类:public static class Permissions

不同的操作系统,对权限的定义、处理可能会有不同,需要根据具体情况做具体分析。

检查读取存储的权限:
PermissionStatus m_statusStorageRead = await Permissions.CheckStatusAsync<Permissions.StorageRead>();

获取读取存储的权限:
PermissionStatus m_statusRequestStorageRead = await Permissions.RequestAsync<Permissions.StorageRead>();

权限可能的状态使用枚举PermissionStatus表示,PermissionStatus 可用于确定后续步骤,包括以下各项值 :

Unknown
权限处于未知状态,或者在 iOS 上从未提示过用户。

Denied
用户拒绝了权限请求。

Disabled
此功能在设备上处于禁用状态。

Granted
用户已授予权限或自动授予权限。

Restricted
处于受限状态。 只有 iOS 返回此状态。

Limited
处于受限状态。 只有 iOS 返回此状态。

如果未声明所需的权限,则会引发 PermissionException。

在请求权限之前,最好先检查权限的状态。 如果从未提示过用户,则每个操作系统返回不同的默认状态。 iOS 会返回 Unknown,而其他系统返回 Denied。 如果状态为 Granted ,则无需进行其他调用。 在 iOS 上,如果状态为 , Denied 应提示用户更改设置中的权限。 在 Android 上,可以调用 ShouldShowRationale 来检测用户是否过去已拒绝过该权限。


权限的分类:
CalendarRead(日历读取)
CalendarWrite(日历写入)
摄像头
ContactsRead
ContactsWrite
手电筒
LocationWhenInUse
LocationAlways
介质
麦克风
电话
照片
提醒
传感器
短信
语音
StorageRead
StorageWrite


打?表示支持的权限,打×表示不支持或不需要的权限。如果某个权限打×,则会始终选中或者默认授权。

Windows系统中,各种权限默认已授权。
收藏 列表

评论: