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;
- }
转载于:https://www.cnblogs.com/AlvinCrash/p/5379458.html
iOS开发- 蓝牙后台接收数据(BLE4.0)相关推荐
- IOS开发-蓝牙实战项目-汪亮-专题视频课程
IOS开发-蓝牙实战项目-4475人已学习 课程介绍 该视频面向有一定开发经验的IOS开发人员,视频主要通过实际上线项目,讲解蓝牙的搜索,连接,手机发送数据,手机接收数据,并处理返回的 ...
- iOS开发 蓝牙技术4.0详解
前言 前端时间,同学在做项目过程中遇到关于蓝牙方面的问题,今天我就给大家进行详细的进行讲解下蓝牙在iOS开发中的具体实现.在介绍蓝牙前,大家要搞清楚什么是蓝牙? 什么是蓝牙? 随着蓝牙低功耗技术BLE ...
- 苹果iOS开发系列--详解Swift 3.0语言的重大变化
概述 从写第一篇Swift文章的时候到现在Swift已经从1.2发展到了今天的3.0,这期间由于Swift目前还在发展阶段并不能向下兼容,因此第一篇文章中的部分代码在当前的Xcode环境中已经无法运行 ...
- 蓝牙APP接收数据并显示图像
最近在项目中需要用到手机APP接收单片机通过蓝牙发送的数据,并显示数据的图像.所幸就自己写了一个. 利用App Inventor可以快捷方便的实现该功能. 组件设计如下: 逻辑设计如下: APP效果展 ...
- 【iOS官方文档翻译】iOS的蓝牙连接、数据接收及发送
说明:苹果官方开发文档中涉及一些名词:Central(中心设备).Peripheral(外围设备).advertising(广告).Services(服务).Characteristic(特征)等,请 ...
- iOS开发蓝牙 蓝牙4.0的各种踩过的坑,希望你们少踩点
1.首先建立这个三个参数 @property (nonatomic,strong)CBCentralManager * manager; @property (nonatomic,strong)CBP ...
- iOS开发简单高效的数据存储
在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题,你是用什么方法来持久保存数据的?这是在几乎每一次关于iOS技术的交流或讨论都会被提到的问题,而且大家对这个问题的热情持续高涨.本文主要从概 ...
- iOS开发 -- 蓝牙版本
一.蓝牙4.0 (2010年6月30日发布) 速度:支持1Mbps数据传输率下的超短数据包,最少8个八位组(字节?),最多27个(字节?).所有连接都使用蓝牙2.1加入的减速呼吸模式(sniff su ...
- c#读蓝牙数据_c#蓝牙通信接收数据
带你读<从实践中学习TCP/IP协议>之一:网络概述 信息安全技术大讲堂点击查看第二章点击查看第三章从实践中学习TCP/IP协议 大学霸IT达人 编著第1章 网 络 概 述 计算机网络是通 ...
最新文章
- Oracle CRS的管理与维护
- mysql查询每个表的描述_MS SQL SERVER 读取数据库中每个表的描述/注释以及表中字段/列的字段名,字段类型,字段描述/注释/说明等信息...
- Fence Repair POJ - 3253
- 如何用 J-Link 来串口调试?
- android中给TextView或者Button的文字添加阴影效果
- Struts2源码学习(一)——Struts2中的XWork容器
- 【mysql】Filesort on too many rows解决方法
- 线性代数及其应用(第三版)5.1节习题解答
- 判断素数的4种方法(C语言)
- 大学英语精读第三版(第四册)复习笔记——文章内容摘要
- 买房? 上区块链, 安排! 全国首张不动产区块链电子凭证诞生
- 计算机之父图灵的 150 封信,多在讨论 AI
- 【嵌入式系统】STM32时钟系统+时钟配置函数解析
- vue项目设置ip访问
- 函数周期表丨筛选丨值丨CALCULATE
- hive 元数据 解释
- <stm32学习笔记>--基本定时器TIM6TIM7
- 【期末考试】计算机组成原理突击复习
- python实现12306全自动抢票
- linux+parted+4k对齐,Centos 磁盘4K对齐脚本 | 聂扬帆博客
热门文章
- 高通驱动9008安装_高通snapdragon888的性能有多强大
- 深度学习之卷积神经网络(1)什么是卷积
- springboot2.x 与 elasticsearch2.4.x整合出错:None of the configured nodes are available
- S3C2440 汇编指令
- python学习: 优秀Python学习资源收集汇总--转
- 您应该如何改变数据科学教育
- alexnet 结构_AlexNet的体系结构和实现
- netflix 开源_Netflix的Polynote是一个新的开源框架,可用来构建更好的数据科学笔记本
- 因为犯罪被判三年刑,期间没办法还信用卡,银行会怎么做?
- 同盟与对抗:谈《少女杜拉的故事》中的治疗关系(转)