iOS开发- 蓝牙后台接收数据(BLE4.0)
最近在做一个蓝牙相关的项目, 需要在应用进入后台, 或者手机属于锁屏状态的情况下, 仍然保持蓝牙连接, 并且能正常接收数据。
本来以后会很麻烦, 但是学习了下..发现就2步而已。简单的不能再简单了。
好了。下面是具体实现办法。
1.在xxx-info.plist文件中, 新建一行 Required background
modes , 加入下面两项。
App shares data using CoreBluetooth 和 App
communicates using CoreBluetooth
如图所示:
加入这个项后, 你会发现, 当应用进入后台后, 蓝牙还是保持连接的。
但是, 进入后台后, 虽然应用还挂着, 能够正常接收数据。但是, 来数据了, 如果需要我们实时响应, 那就要用到推送了。
也就是, 当数据来的时候, 弹出一个提示框, 提示用户来数据了。
2. 设置本地推送
这里的方法写在AppDelegate.m中。 receiveData对应你接收到数据的响应函数。
- -(void)receiveData:(NSData*)data
- {
- NSLog(@"收到数据了");
- //收到数据, 设置推送
- UILocalNotification *noti = [[UILocalNotification alloc] init];
- if (noti)
- {
- //设置时区
- noti.timeZone = [NSTimeZone defaultTimeZone];
- //设置重复间隔
- noti.repeatInterval = NSWeekCalendarUnit;
- //推送声音
- noti.soundName = UILocalNotificationDefaultSoundName;
- //内容
- noti.alertBody = @"接收到数据了";
- noti.alertAction = @"打开";
- //显示在icon上的红色圈中的数子
- noti.applicationIconBadgeNumber = 1;
- //设置userinfo 方便在之后需要撤销的时候使用
- NSDictionary *infoDic = [NSDictionary dictionaryWithObject:@"name" forKey:@"key"];
- noti.userInfo = infoDic;
- //添加推送到uiapplication
- UIApplication *app = [UIApplication sharedApplication];
- [app scheduleLocalNotification:noti];
- }
- }
- #pragma mark - 接收到推送
- - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification*)notification
- {
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"来电提示"
- message:notification.alertBody
- delegate:nil
- cancelButtonTitle:@"接听"
- otherButtonTitles:@"挂断",nil];
- [alert show];
- //这里,你就可以通过notification的useinfo,干一些你想做的事情了
- application.applicationIconBadgeNumber -= 1;
- }
iOS开发- 蓝牙后台接收数据(BLE4.0)的更多相关文章
- ios开发视频播放后台下载功能实现 :1,ios播放视频 ,包含基于AVPlayer播放器,2,实现下载,iOS后台下载(多任务同时下载,单任务下载,下载进度,下载百分比,文件大小,下载状态)(真机调试功能正常)
ABBPlayerKit ios开发视频播放后台下载功能实现 : 代码下载地址:https://github.com/niexiaobo/ABBPlayerKit github资料学习和下载地址:ht ...
- iOS开发网络篇—JSON数据的解析
iOS开发网络篇—JSON数据的解析 iOS开发网络篇—JSON介绍 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式 ...
- 玩转iOS开发 - JSON 和 Xml 数据解析
前言 Json 和xml是网络开发中经常使用的数据格式,JSON轻量级.xml相对较复杂.所以如今用JSON的比例很大.基本上从server获取的返回数据都是JSON格式的,作为iOS开发人员,解析J ...
- iOS开发:后台运行以及保持程序在后台长时间运行
第一部分 1.先说说iOS 应用程序5个状态: 停止运行-应用程序已经终止,或者还未启动. 不活动-应用程序处于前台但不再接收事件(例如,用户在app处于活动时锁住了设备). 活动-app处于“使用中 ...
- iOS开发网络篇—XML数据的解析
iOS开发网络篇—XML数据的解析 iOS开发网络篇—XML介绍 一.XML简单介绍 XML:全称是Extensible Markup Language,译作“可扩展标记语言” 跟JSON一样,也是 ...
- android蓝牙(二)——接收数据
在蓝牙开发中,我们有这种一个需求:我们的androidclient要始终保持和蓝牙的连接,当蓝牙有数据返回的时候,androidclient就要及时的收取数据,当蓝牙没有数据返回的时候我们就要保持an ...
- iOS开发蓝牙 蓝牙4.0的各种踩过的坑,希望你们少踩点
1.首先建立这个三个参数 @property (nonatomic,strong)CBCentralManager * manager; @property (nonatomic,strong)CBP ...
- iOS开发简单高效的数据存储
在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题,你是用什么方法来持久保存数据的?这是在几乎每一次关于iOS技术的交流或讨论都会被提到的问题,而且大家对这个问题的热情持续高涨.本文主要从概 ...
- IOS开发之后台处理
1 前言IOS4 之后提供了后台处理,在后台运行应用程序,在一些情形下甚至可以在用户按下Home按钮之后在后台运行. 2 详述IOS可以在用户按下Home按钮后将应用程序添加到暂停状态.这种暂停执行的 ...
随机推荐
- markdown语法集锦
参考:http://wowubuntu.com/markdown/#blockquote 1. 标题 # 一级标题 ## 二级标题 ### 三级标题 共六级标题 2. 列表 有序列表:1,2,3: 无 ...
- UIButton属性
1.UIButton状态: UIControlStateNormal // 正常状态 UIControlStateHighlighted // 高亮状态 UICo ...
- The REST Objection
HTTP 1.1 Standard http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
- C# 匿名方法
每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默.我眼中的程序员大多都不 ...
- ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST
用户反馈数据库设置归档后,无法启动,并报如下错误: SQL> startup ORA-: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST ...
- PostgreSQL单机、同步复制、异步复制性能测试对比
测试环境: •测试机:PC •内存:8GB •CPU:Intel(R) Core(TM) i5-3450 3.10GHz •硬盘:HDD •数据量:20GB •测试工具:pgbench •Postgr ...
- Winform 基本属性
WinForm--- 客户端应用程序 - 是需要安装在用户电脑上才可以使用的程序特点:不需要联网也可以打开使用部分功能但是现在的情况是许多功能依然需要互联网的支持 代码部分在用户电脑上执行 WinFo ...
- ACM-ICPC竞赛模板
为了方便打印,不再将代码放到代码编辑器里,祝你好运. ACM-ICPC竞赛模板(1) 1. 几何 4 1.1 注意 4 1.2 几何公式 4 1.3 多边形 6 1.4 多边形切割 9 1.5 浮点函 ...
- codevs 1201 最小数和最大数
http://codevs.cn/problem/1201/ 1201 最小数和最大数 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze 题解 题 ...
- [转]WEB开发者必备的7个JavaScript函数
我记得数年前,只要我们编写JavaScript,都必须用到几个常用的函数,比如,addEventListener 和 attachEvent,并不是为了很超前的技术和功能,只是一些基本的任务,原因是各 ...
