最近在做一个蓝牙相关的项目, 需要在应用进入后台, 或者手机属于锁屏状态的情况下, 仍然保持蓝牙连接, 并且能正常接收数据。

本来以后会很麻烦, 但是学习了下..发现就2步而已。简单的不能再简单了。

好了。下面是具体实现办法。

1.在xxx-info.plist文件中, 新建一行  Required background
modes
 , 加入下面两项。

App shares data using CoreBluetooth 和 App
communicates using CoreBluetooth

如图所示:

加入这个项后, 你会发现, 当应用进入后台后, 蓝牙还是保持连接的。

但是, 进入后台后, 虽然应用还挂着, 能够正常接收数据。但是,  来数据了, 如果需要我们实时响应, 那就要用到推送了。

也就是, 当数据来的时候, 弹出一个提示框, 提示用户来数据了。

2. 设置本地推送

这里的方法写在AppDelegate.m中。  receiveData对应你接收到数据的响应函数。

  1. -(void)receiveData:(NSData*)data
  2. {
  3. NSLog(@"收到数据了");
  4. //收到数据, 设置推送
  5. UILocalNotification *noti = [[UILocalNotification alloc] init];
  6. if (noti)
  7. {
  8. //设置时区
  9. noti.timeZone = [NSTimeZone defaultTimeZone];
  10. //设置重复间隔
  11. noti.repeatInterval = NSWeekCalendarUnit;
  12. //推送声音
  13. noti.soundName = UILocalNotificationDefaultSoundName;
  14. //内容
  15. noti.alertBody = @"接收到数据了";
  16. noti.alertAction = @"打开";
  17. //显示在icon上的红色圈中的数子
  18. noti.applicationIconBadgeNumber = 1;
  19. //设置userinfo 方便在之后需要撤销的时候使用
  20. NSDictionary *infoDic = [NSDictionary dictionaryWithObject:@"name" forKey:@"key"];
  21. noti.userInfo = infoDic;
  22. //添加推送到uiapplication
  23. UIApplication *app = [UIApplication sharedApplication];
  24. [app scheduleLocalNotification:noti];
  25. }
  26. }
  1. #pragma mark - 接收到推送
  2. - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification*)notification
  3. {
  4. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"来电提示"
  5. message:notification.alertBody
  6. delegate:nil
  7. cancelButtonTitle:@"接听"
  8. otherButtonTitles:@"挂断",nil];
  9. [alert show];
  10. //这里,你就可以通过notification的useinfo,干一些你想做的事情了
  11. application.applicationIconBadgeNumber -= 1;
  12. }

iOS开发- 蓝牙后台接收数据(BLE4.0)的更多相关文章

  1. ios开发视频播放后台下载功能实现 :1,ios播放视频 ,包含基于AVPlayer播放器,2,实现下载,iOS后台下载(多任务同时下载,单任务下载,下载进度,下载百分比,文件大小,下载状态)(真机调试功能正常)

    ABBPlayerKit ios开发视频播放后台下载功能实现 : 代码下载地址:https://github.com/niexiaobo/ABBPlayerKit github资料学习和下载地址:ht ...

  2. iOS开发网络篇—JSON数据的解析

    iOS开发网络篇—JSON数据的解析 iOS开发网络篇—JSON介绍 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式 ...

  3. 玩转iOS开发 - JSON 和 Xml 数据解析

    前言 Json 和xml是网络开发中经常使用的数据格式,JSON轻量级.xml相对较复杂.所以如今用JSON的比例很大.基本上从server获取的返回数据都是JSON格式的,作为iOS开发人员,解析J ...

  4. iOS开发:后台运行以及保持程序在后台长时间运行

    第一部分 1.先说说iOS 应用程序5个状态: 停止运行-应用程序已经终止,或者还未启动. 不活动-应用程序处于前台但不再接收事件(例如,用户在app处于活动时锁住了设备). 活动-app处于“使用中 ...

  5. iOS开发网络篇—XML数据的解析

     iOS开发网络篇—XML数据的解析 iOS开发网络篇—XML介绍 一.XML简单介绍 XML:全称是Extensible Markup Language,译作“可扩展标记语言” 跟JSON一样,也是 ...

  6. android蓝牙(二)——接收数据

    在蓝牙开发中,我们有这种一个需求:我们的androidclient要始终保持和蓝牙的连接,当蓝牙有数据返回的时候,androidclient就要及时的收取数据,当蓝牙没有数据返回的时候我们就要保持an ...

  7. iOS开发蓝牙 蓝牙4.0的各种踩过的坑,希望你们少踩点

    1.首先建立这个三个参数 @property (nonatomic,strong)CBCentralManager * manager; @property (nonatomic,strong)CBP ...

  8. iOS开发简单高效的数据存储

    在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题,你是用什么方法来持久保存数据的?这是在几乎每一次关于iOS技术的交流或讨论都会被提到的问题,而且大家对这个问题的热情持续高涨.本文主要从概 ...

  9. IOS开发之后台处理

    1 前言IOS4 之后提供了后台处理,在后台运行应用程序,在一些情形下甚至可以在用户按下Home按钮之后在后台运行. 2 详述IOS可以在用户按下Home按钮后将应用程序添加到暂停状态.这种暂停执行的 ...

随机推荐

  1. ISymbol

    public void Draw (IGeometry Geometry); public void QueryBoundary (     int hDC,     ITransformation ...

  2. SQL Server 2008 Express 安装或卸载时提示“重启计算机失败"的解决办法

    安装或卸载SQL Server 遇到错误提示:以前的某个程序安装已在安装计算机上创建挂起的文件操作.运行安装程序之前必须重新启动计算机.如下图: 解决办法: 1.在开始->运行中输入regedi ...

  3. javascript设计模式学习之十七——程序设计原则与面向接口编程

    一.编程设计原则 1)单一职责原则(SRP): 这里的职责是指“引起变化的原因”:单一职责原则体现为:一个对象(方法)只做一件事. 事实上,未必要在任何时候都一成不变地遵守原则,实际开发中,因为种种原 ...

  4. MySQL半同步复制的安装和配置

    (1)检查master/slave是否支持动态加载插件 > show variables like 'have_dynamic_loading'; +---------------------- ...

  5. spring 依赖注入 小结

    通过 @Autoiwired注解  和接口  注入实现这个接口的实现类 的  类  也必须是 可注入的(必须归spring容器所管理)

  6. 3n+1问题

    猜想: 对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半. 经过若干次这样的变换,一定会使n变为1.例如3->10->5->16->8->2-& ...

  7. Leetcode: Mini Parser

    Given a nested list of integers represented as a string, implement a parser to deserialize it. Each ...

  8. JAVA-面向对象-多态

    多态 1.方法重载 2.方法重写 3.对象转型 4.抽象(可以定义类和方法)    (关键字  abstract)   ( 如: public abstract class robot  )(不能修饰 ...

  9. SQL between查询 范围查询

    --sal为员工工资 select * from emp;

  10. Python学习总结5:数据类型及转换

    Python提供的基本数据类型主要有:整型.浮点型.字符串.列表.元组.集合.字典.布尔类型等等. Python可以用一些数据类型函数,直接进行转换: 函数                       ...