【开发技巧】再见,BLE的那些坑!
蓝牙,平常你用的多吗?
上班路上戴着蓝牙耳机听音乐、看视频
打开蓝牙分享个人热点给小伙伴们
解锁共享单车时,打开蓝牙就能迅速解锁
......
BLE—蓝牙低能耗技术,方便了我们的生活,但是开发者在开发过程中却遇到了不少坑,尤其对小白用户来说坑真的太多了,都是安卓、iOS系统惹的祸。
今天,柚子君给大家分享一个解决BLE那些坑的经验,希望能帮助更多人。
项目中用到BLE模块时,要注意以下问题:
❶ 用示例代码安卓系统扫描蓝牙设备就无法成功,而苹果则没问题。
✓ 解决办法:将serviceUUIDs: ['', '']改为serviceUUIDs: []即可。一次扫描不出来可以多扫描几次。
❷ 安卓和苹果的设备UUID不一样,安卓为xx:xx:xx:xx:xx:xx格式,苹果为GUID格式。
✓ 解决办法:以你扫描获取的UUID访问设备就行了。
❸ 安桌和苹果的服务UUID和服务特征CharacteristicsUUID不一样(服务UUID和服务特征CharacteristicsUUID是父子关系)。
安卓为GUID格式,苹果为短格式。两者扫描出的服务数也不一样,苹果只扫描出用户能调用的,安卓会把系统级的也扫描出来,安卓一般第3个服务是用户能调用的。
✓ 解决办法:以你扫描获取的获取的服务UUID的服务特征CharacteristicsUUID访问就行了。
❹ 最重要的一点,也是为什么调用老不对的问题。
✓ 解决办法:不管你是否知道设备UUID,服务UUID,蓝牙是否打开。请一定要按步骤调用:扫描设备->连接设备->获取所有服务UUID
->服务UUID对应的所有服务特征CharacteristicsUUID。这些步骤走完了,才能调用服务UUID和对应的服务特征CharacteristicsUUID。
【开发技巧】再见,BLE的那些坑!的更多相关文章
- SQL开发技巧(二)
本系列文章旨在收集在开发过程中遇到的一些常用的SQL语句,然后整理归档,本系列文章基于SQLServer系列,且版本为SQLServer2005及以上-- 文章系列目录 SQL开发技巧(一) SQL开 ...
- Android应用安全开发之浅谈加密算法的坑
<Android应用安全开发之浅谈加密算法的坑> 作者:阿里移动安全@伊樵,@舟海 阿里聚安全,一站式解决应用开发安全问题 Android开发中,难免会遇到需要加解密一些数据内 ...
- CozyRSS开发记录0-RSS阅读器开坑
CozyRSS开发记录0-RSS阅读器开坑 1.RSS RSS,全名是Really Simple Syndication,简易信息聚合. 关于RSS相关的介绍,网上可以很容易的找到.RSS阅读器是我几 ...
- DelphiXE2 DataSnap开发技巧收集
DelphiXE2 DataSnap开发技巧收集 作者: 2012-08-07 09:12:52 分类:Delphi 标签: 作为DelphiXE2 DataSnap开发的私家锦囊, ...
- delphi XE5下安卓开发技巧
delphi XE5下安卓开发技巧 一.手机快捷方式显示中文名称 project->options->Version Info-label(改成需要显示的中文名即可),但是需要安装到安卓手 ...
- 经典收藏 50个jQuery Mobile开发技巧集萃
http://www.cnblogs.com/chu888chu888/archive/2011/11/10/2244181.html 1.Backbone移动实例 这是在Safari中运行的一款Ba ...
- 移动 Web 开发技巧之(后续)
昨天的<移动 Web 开发技巧>的这篇文章,大家反响不错,因为这些问题在大家日常写移动端的页面时经常遇到的.所以那个文章还是超级实用的,那么我们今天继续来分享一下移动端的web开发技巧吧, ...
- Maven 安装以及一些开发技巧
解压 apache-maven-3.2.5 在conf ->sites中配置repository 的路径. Eclipse 配置 maven 2. 3. 一些小BUG 或开发技巧 eclipse ...
- thinkphp开发技巧经验分享
thinkphp开发技巧经验分享 www.111cn.net 编辑:flyfox 来源:转载 这里我给大家总结一个朋友学习thinkphp时的一些笔记了,从变量到内置模板引擎及系统变量等等的笔记了,同 ...
- Java 8的五大开发技巧
转载:http://geek.csdn.net/news/detail/94219 在Java 9发布之前,我们来分享一些Java 8开发技巧,本文翻译自JetBrains高级开发主管Trisha G ...
随机推荐
- 初识OpenGl
函数命名规则 OpenGl函数都遵循一个命名约定:<库前缀> <根命令> <可选参数个数> <可选参数类型> 如:glColor3f() ,gl:核心库 ...
- day29-struct模块解决黏包问题
#struct模块可以把一个数据类型,例如数字int,转化成固定长度(4个字节)的bytes.int转为4个bytes. #在大量传输数据之前先告诉接收端即将接收数据的大小,方可解决黏包问题: #利用 ...
- 让Spring不再难懂-aop篇
什么是aop AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.OOP允许 ...
- 吴裕雄--天生自然 R语言开发学习:R语言的简单介绍和使用
假设我们正在研究生理发育问 题,并收集了10名婴儿在出生后一年内的月龄和体重数据(见表1-).我们感兴趣的是体重的分 布及体重和月龄的关系. 可以使用函数c()以向量的形式输入月龄和体重数据,此函 数 ...
- Tomcat远程调试模式及利用Eclipse远程链接调试
1.启动tomcat到调试模式 进入到tomcat的bin目录下,执行命令./catalina.sh jpda run 启动日记会提示打开调试端口默认为8000 2.调试Eclipse远程连接tomc ...
- JS代码,从一个数组中得到连号的数并显示
JavaScript code function m() { var k = [1, 2, 7, 8, 9, 11, 22, 35, 36]; ) return; ; ; ; ; i < k.l ...
- python面向对象类的约束和设计的统一化规范
.封装 定义:将一些东西内容封存到一个地方,你还可以再取出, 类设置静态属性,设置一些方法 对象可以在其对象空间中封装一些属性 2.多态 定义:一个事物的多种形态 就想a可以是一个字符串,可以是一个列 ...
- OSPF 大实验
实验拓扑如图所示: 公司A网络如实验拓扑所示,请根据如下需求对网络进行部署: 1) 按照拓扑所示配置OSPF多区域,另外R3与R6,R4与R6间配置RIPv2.R1,R2,R3,R4的环回接口0通告入 ...
- mysqli存储过程
<?php$link = mysqli_connect('localhost','root','','chinatupai'); $sql = "call getEmail('000 ...
- Shell 快速入门(十八):特殊符号的使用
在 Shell 语言中,经常会看到中括号和括号组成的特殊标识,例如:[].[[]].(()).$(()).().这些符号经常使我们非常迷惑,弄清楚它们之间的作用和区别非常必要. 在开始之前,我们先来学 ...