欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS蓝牙APP常驻后台

程序员文章站 2022-06-30 19:28:36
iOS蓝牙类APP常驻后台的实现方法,经过在苹果开发者论坛询问,以及查看苹果开发者文档,最后得出正确的方法为: 1.设置plist,蓝牙权限 2.到target-capabilities-background modes中打开use Bluetooth LE accessories选项 3.创建ce ......

ios蓝牙类app常驻后台的实现方法,经过在苹果开发者论坛询问,以及查看苹果开发者文档,最后得出正确的方法为:

1.设置plist,蓝牙权限

2.到target-capabilities-background modes中打开use bluetooth le accessories选项

3.创建central manager时设置restore identifier

_bluetoothmanager = [[cbcentralmanager alloc] initwithdelegate:self queue:centralqueue options:@{cbcentralmanageroptionrestoreidentifierkey : cardreadingservicemanagerrestoreidentifier}];

4.appdelegate的didfinishlaunching方法中,如果检测到对应的key就重新创建bluetooth manager

for (nsstring *blue in centralmanageridentifiers) {
     if ([blue isequaltostring:cardreadingservicemanagerrestoreidentifier]) {
           [cardreadingservice getinstance].bluetoothmanager = nil;
           [[cardreadingservice getinstance] bluetoothmanager];
           break;
        }
   }

5.实现bluetooth central delegate的willrestorestate方法,开启扫描

- (void)centralmanager:(cbcentralmanager *)central willrestorestate:(nsdictionary<nsstring *,id> *)dict {
    [self startscan];
    [self startaccleerometer];
}

 

以上方法是从开发者文档中找到的,对应的链接

 

但是到ios12之后,发现不能长期保持后台,不知道是不是系统又对应用后台做了限制,改进方法还在研究中。