如何使用iOS13中的新蓝牙提示处理用户交互?

问题描述 投票:0回答:1

“ Info.plist文件有一个新密钥:NSBluetoothAlwaysUsageDescription,您可以用它来解释您的应用如何和为什么使用蓝牙。与现有的NSBluetoothPeripheralUsageDescription相比,新描述将是显示为新弹出窗口的一部分,也显示在“蓝牙隐私”屏幕上的“设置”应用中。“

更新到iOS 13之后,我们确信应用程序崩溃了,我敢肯定很多人都这么做了。我们的问题是由于Xamarin.iOS项目Info.plist文件中未包括新要求的蓝牙密钥。

但是在加载后在添加第一个“操作”后将其添加给用户新的蓝牙访问提示。

我们还没有清楚地看到如何捕获对此提示的响应。该提示与应用程序进行交互后,实际上没有“返回”点。无法完全找到提示交互/结果处理的断点,因此我们的应用程序永远不会从提示返回。它正在运行,但不会发生下一个“动作”。

因此,如何在iOS 13中捕获/处理用户与新蓝牙提示的交互?

注意*:绝对透明-我们的应用程序不初始化CBCentralManager的任何实例,而是利用本身在内部使用Bluetooth LE的本机框架(不受我们控制)。

xamarin.forms bluetooth xamarin.ios
1个回答
0
投票

我们的情况可能非常独特,但是对于那些体验此工具CBCentralManager并利用其UpdatedState方法来捕获用户与新呈现的蓝牙对话的交互的语言。

在我们的应用程序主页的页面创建中调用了初始化

BleManager = new BluetoothManager();

班级

using System;
using CoreBluetooth;

namespace MyApp.iOS.Classes
{
    public class BluetoothManager
    {
        public CBCentralManager CentralBleManager
        {
            get { return this.bleCntrlMgr; }
        }
        protected CBCentralManager bleCntrlMgr;
        protected CBCentralManagerDelegate bleMgrDel;

        public BluetoothManager()
        {
            this.bleCntrlMgr = new CoreBluetooth.CBCentralManager();
            this.bleCntrlMgr.UpdatedState += BleMgr_UpdatedState;
        }

        private void BleMgr_UpdatedState(object sender, EventArgs e)
        {
            Console.WriteLine("UpdatedState: {0}", bleCntrlMgr.State);
            if (bleCntrlMgr.State == CBCentralManagerState.PoweredOn
                || bleCntrlMgr.State == CBCentralManagerState.PoweredOff
                || bleCntrlMgr.State == CBCentralManagerState.Resetting
                || bleCntrlMgr.State == CBCentralManagerState.Unauthorized
                || bleCntrlMgr.State == CBCentralManagerState.Unsupported)
            {
                /* return point */
                // i.e.: CallMethod();
            }
            else if (bleCntrlMgr.State == CBCentralManagerState.Unknown)
            {
                /* <-- request access --> */
            }
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.