xamarin - Xamarin iOS 13 在不触发原生弹出窗口的情况下检查蓝牙权限
问题描述
iOS 13 开始请求蓝牙权限。当尚未授予蓝牙权限时,我想显示一个自定义屏幕来解释为什么我需要蓝牙并建议让应用程序访问它。在此之前,我必须检查是否授予了蓝牙权限。
此函数立即显示本机弹出窗口并请求许可:
public bool NeedsBluetoothPermission()
{
if (UIDevice.CurrentDevice.CheckSystemVersion(13, 0))
{
return CBCentralManager.Authorization != CBManagerAuthorization.AllowedAlways;
}
else
{
return false;
}
}
问题:如何在不触发原生弹出窗口的情况下检查应用是否需要请求蓝牙权限?
这个答案对我不起作用,因为我还没有创建任何 CBCentralManager 实例,我只使用它的静态属性。
原生 iOS 开发者,也请加入。我想这不仅仅是 Xamarin 的问题......
解决方案
另一种方法是使用 CBCentralInitOptions,您可以在其中将“ShowPowerAlert”设置为 false。
创建 CBCentralManager 的实例时,传递 init 选项,它不会显示本机弹出窗口
推荐阅读
- rrdtool - rrdtool 简单步骤图的帮助
- networking - 如何切换 K8s 集群中的默认 CNI 提供程序
- javascript - Javascript:如果语句包含无法解析的函数
- exiftool - 如何补偿文件名中不完整的日期/时间信息
- excel - 尝试使用 Selenium + Excel VBA 从 Chrome 浏览器中的站点抓取代码
- apache-spark - Apache Spark 的不同 Metastore/数据目录选项?
- typescript - 打字稿 - [MyType 的数组
, 推断 T] 其中 T 可能因元素而异 - django-rest-framework - 如何在我的 models.py 文件中使用 choice_fields 以及如何在我的输出中表示它们?
- react-native - react-native Build Failed - > Task :app:processDebugManifest FAILED
- php - 在php中同时从数据库发送多封电子邮件