iOS蓝牙APP常驻后台

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之后,发现不能长期保持后台,不知道是不是系统又对应用后台做了限制,改进方法还在研究中。

原文地址:https://www.cnblogs.com/shenyuiOS/p/9989266.html

时间: 2024-11-05 19:42:57

iOS蓝牙APP常驻后台的相关文章

iOS保持App真后台运行

https://www.jianshu.com/p/d466f2da0d33 在我看来,苹果系统与安卓系统最直观的区别就是后台处理方式了吧,安卓手机一旦开启了很多app放到后台,即使前台什么也不做,就是切换一下系统界面都会觉得卡;苹果手机不论开多少app在后台都感觉很流畅. 这是因为安卓默认处理app为真后台,可以一直在后台处理操作; 而iOS为了让设备尽量省电,减少不必要的开销,保持系统流畅,因而对后台机制采用墓碑式的“假后台”.除了系统官方极少数程序可以真后台,一般开发者开发出来的应用程序后

iOS App进入后台获取更多的运行时间

转载自:looyao's blog 当App进入后台时(按下Home键), App会被系统暂停, 所有的程序逻辑都会停止, App还是驻留内存中, 除非被用户强制退出, 或者被系统kill掉(为了保证正在前台运行的App有足够的内存, 系统会选择性的kill到后台的其他App), 当然这个和本文讨论的主题不太相关, 本文要讲的是如何让进入后台的App争取更多的运行时间而不是被马上暂停掉. 当程序进入后台, 我们有时需要做一些网络通信, 比如向服务器发送一些状态数据, 可能这些操作不会太耗时, 但

iOS解决应用进入后台后计时器和位置更新停止的问题

由于iOS系统为"伪后台"运行模式,当按下HOME键时,如程序不做任何操作,应用会有5秒的执行缓冲时间,随机程序被挂起,所有任务终端,包括计时器和位置更新等操作,但程序打开后台模式开关后,部分任务可以再后台执行,如音频,定位,蓝牙,下载,VOIP,即便如此,程序的后台运行最多可以延长594秒(大概是10分钟).不幸的是,程序在声明后台模式后很有可能在app上架时被拒.基于此,我研究出了不用申明后台模式就能让计时器和定位在app进入前台时继续运行的方法. 实现原理如下: 利用iOS的通知

【如何快速的开发一个完整的iOS直播app】(原理篇)

一.个人见解(直播难与易) 直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通讯等技术,每一个技术都够你学几年的. 直播易:已经有各个领域的大牛,封装好了许多牛逼的框架,我们只需要用别人写好的框架,就能快速的搭建一个直播app,也就是传说中的站在大牛肩膀上编程. 二.了解直播 热门直播产品 映客,斗鱼,熊猫,虎牙,花椒等等 直播效果图 直播效果.jpeg 1.一个完整直播ap

IOS平台APP安全Checklist

#1. 前言IOS平台APP安全风险相关的一般性Checklist,保障IOS客户端安全评估的质量与效率.#2. 数据安全##2.1 传输安全该类漏洞的审查场景:APP通过网络发送或接收敏感信息,比如用户口令.用户隐私信息等,或者通过网络下发的数据执行某些敏感操作**漏洞类型说明:**由于移动设备通常是通过wifi上网,因而面临网络窃听.网络劫持等中间人攻击行为,因此对于敏感信息需要加密传输,并且对接收到的重要数据也需要进行完整性校验.如果APP自身实现了加密及完整性校验的机制,需要确认机制是否

iOS申请持续的后台时间

iOS申请持续的后台时间 分类:IOS开发相关 (877)  (0) 由于苹果的后台机制,当我们按下home键的时候,所有线程包括主线程的任务都会被挂起,一些资源比如socket也会被系统回收,会导致很多问题,比如一个很重要的资源中断下载,或者定时器方法被暂停等等. 苹果在4.0以后提供了一种申请后台时间的机制: - (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void (^)(void))handl

APP进入后台时自动截屏的应对方法

点击HOME键使应用进入后台时,iOS会自动对当前屏幕进行截屏处理,并保存成图片文件. 在Mac中可以看到,这些截屏文件会被保存在下述路径中: <Home>/Library/Caches/Snapshots/(Bundle identifier)/ 且文件名以"UIApplicationAutomaticSnapshotDefault-"开头. 这些自动生成的截屏文件,对启用了密码保护功能的应用而言,在安全性方面会是个比较严重的问题. 经过各种试验,找到了3中解决方法. 方

如何快速的开发一个完整的iOS直播app(原理篇)

前言 大半年没写博客了,但我一直关注着互联网的动向,最近会研究很多东西,并分享,今年移动直播行业的兴起,诞生了一大批网红,甚至明星也开始直播了,因此不得不跟上时代的步伐,由于第一次接触的原因,因此花了很多时间了解直播,整理了直播的原理,当前只是原理篇,后续会持续发布实战篇,教你从零开始搭建一个完整的iOS直播app,希望能帮助到更多的人更快的了解直播. 一.个人见解(直播难与易) 直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频

[转]iOS hybrid App 的实现原理及性能监测

转自:http://www.cocoachina.com/ios/20151118/14270.html iOS hybrid App 的实现原理及性能监测 2015-11-18 11:39 编辑: lansekuangtu 分类:iOS开发 来源:CocoaChina 1 2571 iOS原理hybrid app性能监测 作者董一凡自述:作为一名写了十年代码的程序员,目前我最擅长的领域是移动平台的客户端开发,在移动领域的开发时间超过七年,前前后后涉猎过很多个平台.随着大部分移动平台自己走向死亡