如何恢复在iOS蓝牙连接

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

我有xamarin项目。我想配对的蓝牙按钮与一个应用程序,并保持连接处于暂停状态活着。我成功订阅了代表在前台状态下点击特性事件。主要用例是处理在挂起状态的情况下和发送数据到服务器。

我阅读文档here,但我有困难实现恢复CBCentralManager特别是把这些方法引入Xamairn.iOS。

选择在国家保护修缮

myCentralManager =
    [[CBCentralManager alloc] initWithDelegate:self queue:nil
     options:@{ CBCentralManagerOptionRestoreIdentifierKey:
     @"myCentralManagerIdentifier" }];

您重新实例中欧和外围经理

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    NSArray *centralManagerIdentifiers =
        launchOptions[UIApplicationLaunchOptionsBluetoothCentralsKey];
    ...

实施适当的恢复委托方法

- (void)centralManager:(CBCentralManager *)central
  willRestoreState:(NSDictionary *)state {

NSArray *peripherals =
    state[CBCentralManagerRestoredStatePeripheralsKey];
...

问题:

  1. 是否应用处理处于暂停状态的事件? (技术上转到后台)
  2. 我必须应用进行了恢复后重新连接的设备?
ios xamarin xamarin.forms xamarin.ios
1个回答
0
投票

我认为你可以在文档中查找答案。

1.Does应用处理处于暂停状态的事件? (技术上转到后台)

您需要能够在一个Core Bluetooth background execution mode info.plist,以确保您的应用程序保持在后台运行。

此外,在或iOS 10.0后链接的iOS应用程序必须在其Info.plist文件中包含的各类数据的使用说明按键需要访问或将崩溃。 InfoPlistKeyReference

你可以阅读:Core Bluetooth Background Execution Modes

2.Do我有应用进行了恢复后重新连接的设备?

如果您gets restored这里意味着你restart your app,我认为你需要重新连接,因为应用程序被终止后,就失去了联系。

如果您gets restored这里指enter foregroundbackground,我不认为你需要,如果你启用后台模式作为您的应用程序仍然在后台运行重新连接。

© www.soinside.com 2019 - 2024. All rights reserved.