【发布时间】:2020-02-12 09:58:11
【问题描述】:
iOS 13 开始请求蓝牙权限。当尚未授予蓝牙权限时,我想显示一个自定义屏幕来解释为什么我需要蓝牙并建议让应用程序访问它。在此之前,我必须检查是否授予了蓝牙权限。
此功能立即显示原生弹出窗口并请求权限:
public bool NeedsBluetoothPermission()
{
if (UIDevice.CurrentDevice.CheckSystemVersion(13, 0))
{
return CBCentralManager.Authorization != CBManagerAuthorization.AllowedAlways;
}
else
{
return false;
}
}
问题:如何在不触发原生弹窗的情况下检查应用是否需要请求蓝牙权限?
This answer 对我不起作用,因为我还没有创建任何 CBCentralManager 实例,我只使用它的静态属性。
原生 iOS 开发者也请加入。我想这不仅仅是 Xamarin 的问题......
【问题讨论】:
-
您可以在
info.plist中的NSBluetoothAlwaysUsageDescription键中写下您的解释。如果CBCentralManager.Authorization是检查蓝牙权限的唯一方法,我认为您无法在使用前显示自定义屏幕。您还可以选择在用户安装完应用后显示自定义屏幕。
标签: xamarin bluetooth permissions ios13