首页 > 解决方案 > 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 的问题......

标签: xamarinbluetoothpermissionsios13

解决方案


另一种方法是使用 CBCentralInitOptions,您可以在其中将“ShowPowerAlert”设置为 false。

创建 CBCentralManager 的实例时,传递 init 选项,它不会显示本机弹出窗口


推荐阅读