我有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.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 foreground
从background
,我不认为你需要,如果你启用后台模式作为您的应用程序仍然在后台运行重新连接。