iOS BLE编写的数据无法在后台运行

时间:2015-08-13 17:15:41

标签: ios background bluetooth-lowenergy

我正在运行我的iOS设备作为BLE中心,我已经遵循各种建议,以确保蓝牙仍然在后台运行。我知道这是因为我的应用程序在后台时能够接收蓝牙消息。但是,当我尝试在后台编写时没有任何反应。使用相同的代码在前台写入工作正常。我是否错过了在背景中写过BLE的小字??

当我收到蓝牙消息时,我会向我的Apple Watch创建一个通知,该通知在后台运行正常。当我按下通知上的“立即锁定”按钮时,我想发送蓝牙消息但由于某种原因它不发送。如果我在应用程序位于前台时从按钮或其他东西调用它,userRequestLock工作得很好。

响应“立即锁定”按下的代码(在AppDelegate.m中):

- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forLocalNotification:(UILocalNotification *)notification completionHandler:(void (^)())completionHandler     {

if ([identifier isEqualToString:@"LOCK"]) {
    NSLog(@"You pressed lock.");

    ViewController * vc = [[ViewController alloc]init];
    [vc userRequestLock];

}

}

userRequestLock(在我的视图控制器中):

-(void)userRequestLock{
NSLog(@"Lock Requested");
UInt8 buf[1] = {0x6C};
NSData *d = [[NSData alloc]initWithBytes:buf length:1];
[ble write:d];

}

我正在打印“你按下锁定”和“请求锁定”,所以我知道正在调用userRequestLock。

有谁知道我错过了什么?

0 个答案:

没有答案