Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin iOS 13在不触发本机弹出窗口的情况下检查蓝牙权限_Xamarin_Bluetooth_Permissions_Ios13 - Fatal编程技术网

Xamarin iOS 13在不触发本机弹出窗口的情况下检查蓝牙权限

Xamarin iOS 13在不触发本机弹出窗口的情况下检查蓝牙权限,xamarin,bluetooth,permissions,ios13,Xamarin,Bluetooth,Permissions,Ios13,iOS 13开始请求蓝牙权限。当蓝牙权限尚未授予时,我想显示一个自定义屏幕,解释我为什么需要蓝牙,并建议允许应用程序访问它。在此之前,我必须检查是否授予蓝牙权限 此函数立即显示本机弹出窗口并请求权限: public bool需要bluetoothpermission() { if(UIDevice.CurrentDevice.CheckSystemVersion(13,0)) { 返回CBCentralManager.Authorization!=CBManagerAuthorization.A

iOS 13开始请求蓝牙权限。当蓝牙权限尚未授予时,我想显示一个自定义屏幕,解释我为什么需要蓝牙,并建议允许应用程序访问它。在此之前,我必须检查是否授予蓝牙权限

此函数立即显示本机弹出窗口并请求权限:

public bool需要bluetoothpermission()
{
if(UIDevice.CurrentDevice.CheckSystemVersion(13,0))
{
返回CBCentralManager.Authorization!=CBManagerAuthorization.AllowedAlways;
}
其他的
{
返回false;
}
}
问题:如何检查应用程序是否需要请求蓝牙权限而不首先触发本机弹出窗口

不适用于我,因为我还没有创建CBCentralManager的任何实例,我只使用它的静态属性


本地iOS开发者,也请加入。我想这不仅仅是Xamarin的问题…

最后,我发现了这个问题。 这种行为在iOS 13.0测试版中是实际存在的

对于最新的iOS 13.2,我没有注意到这个问题

我可以默默地检查CBCentralManager.Authorization属性。
当我创建CBCentralManager实例时,系统弹出窗口会出现。

最后,我解决了这个问题。 这种行为在iOS 13.0测试版中是实际存在的

对于最新的iOS 13.2,我没有注意到这个问题

我可以默默地检查CBCentralManager.Authorization属性。
当我创建CBCentralManager实例时,系统弹出窗口会显示。

另一种方法是使用CBCentralInTopions,您可以将“ShowPowerAlert”设置为false


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

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


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

您可以在
info.plist
中的
NSBluetoothAlwaysUsageDescription
键中编写说明。如果
CBCentralManager.Authorization
是检查蓝牙权限的唯一方法,我认为在使用之前不能显示自定义屏幕。您还可以选择在用户安装完应用程序后显示自定义屏幕。您可以在
NSBluetoothAlwaysUsageDescription
中输入
info.plist
中的说明。如果
CBCentralManager.Authorization
是检查蓝牙权限的唯一方法,我认为在使用之前不能显示自定义屏幕。你也可以选择在用户安装完应用程序后显示自定义屏幕。不幸的是,这实际上不是一个测试版问题,而是一个实际的iOS 13.0错误,它在iOS 13.1中得到了修复。希望由于iOS 13.1是在13.0发布7天后发布的,所以很少有人会使用iOS 13.0。不幸的是,这实际上不是一个测试版问题,而是一个实际的iOS 13.0错误,它在iOS 13.1中得到了修复。希望由于iOS 13.1是在13.0发布7天后发布的,所以很少有人会使用iOS 13.0。