蓝牙,平常你用的多吗?
上班路上戴着蓝牙耳机听音乐、看视频
打开蓝牙分享个人热点给小伙伴们
解锁共享单车时,打开蓝牙就能迅速解锁
......

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的那些坑!的更多相关文章

  1. SQL开发技巧(二)

    本系列文章旨在收集在开发过程中遇到的一些常用的SQL语句,然后整理归档,本系列文章基于SQLServer系列,且版本为SQLServer2005及以上-- 文章系列目录 SQL开发技巧(一) SQL开 ...

  2. Android应用安全开发之浅谈加密算法的坑

      <Android应用安全开发之浅谈加密算法的坑> 作者:阿里移动安全@伊樵,@舟海 阿里聚安全,一站式解决应用开发安全问题     Android开发中,难免会遇到需要加解密一些数据内 ...

  3. CozyRSS开发记录0-RSS阅读器开坑

    CozyRSS开发记录0-RSS阅读器开坑 1.RSS RSS,全名是Really Simple Syndication,简易信息聚合. 关于RSS相关的介绍,网上可以很容易的找到.RSS阅读器是我几 ...

  4. DelphiXE2 DataSnap开发技巧收集

    DelphiXE2 DataSnap开发技巧收集 作者:  2012-08-07 09:12:52     分类:Delphi     标签: 作为DelphiXE2 DataSnap开发的私家锦囊, ...

  5. delphi XE5下安卓开发技巧

    delphi XE5下安卓开发技巧 一.手机快捷方式显示中文名称 project->options->Version Info-label(改成需要显示的中文名即可),但是需要安装到安卓手 ...

  6. 经典收藏 50个jQuery Mobile开发技巧集萃

    http://www.cnblogs.com/chu888chu888/archive/2011/11/10/2244181.html 1.Backbone移动实例 这是在Safari中运行的一款Ba ...

  7. 移动 Web 开发技巧之(后续)

    昨天的<移动 Web 开发技巧>的这篇文章,大家反响不错,因为这些问题在大家日常写移动端的页面时经常遇到的.所以那个文章还是超级实用的,那么我们今天继续来分享一下移动端的web开发技巧吧, ...

  8. Maven 安装以及一些开发技巧

    解压 apache-maven-3.2.5 在conf ->sites中配置repository 的路径. Eclipse 配置 maven 2. 3. 一些小BUG 或开发技巧 eclipse ...

  9. thinkphp开发技巧经验分享

    thinkphp开发技巧经验分享 www.111cn.net 编辑:flyfox 来源:转载 这里我给大家总结一个朋友学习thinkphp时的一些笔记了,从变量到内置模板引擎及系统变量等等的笔记了,同 ...

  10. Java 8的五大开发技巧

    转载:http://geek.csdn.net/news/detail/94219 在Java 9发布之前,我们来分享一些Java 8开发技巧,本文翻译自JetBrains高级开发主管Trisha G ...

随机推荐

  1. F5中设置OA通过F5进行访问设置

  2. 吴裕雄--天生自然python机器学习:Logistic回归

    假设现在有一些数据点,我们用 一条直线对这些点进行拟合(该线称为最佳拟合直线),这个拟合过程就称作回归.利用Logistic回归进行分类的主要思想是:根据现有数据对分类边界线建立回归公式,以此进行分类 ...

  3. 2. Unconstrained Optimization(2th)

    2.1 Basic Results on the Existence of Optimizers 2.1. DefinitionLet $f:U->\mathbb{R}$ be a functi ...

  4. Django线上部署实战教程之Nginx+Gunicorn+Django篇

    #############################################   推荐 nginx supervisor gunicorn  配置简单,运维方便. Nginx (engi ...

  5. 自定义控件 监控宿主activity的生命周期

    使用不显示的fragment来监控activity生命周期,fragment生命周期基本上跟随宿主activity变化.我们通过fragment的生命周期就可以知到activity的生命周期 我们自定 ...

  6. FireWall2

    配置防火墙步骤: 1.给接口配置ip,开 service-manage 服务 2.把接口画在zone区域 3.配置策略 4.服务器一定要开启服务 1. interface GigabitEtherne ...

  7. 2015-09-23-Archlinux的一些配置

    firefox的flash插件 pacman -S flashplugin firefox上网慢 由于Chromium浏览器,打字的时候经常会跳字母,所以就换了firefox浏览器,但是FF上网的时候 ...

  8. group compare vs pair compare

    成对总体检验是令y1=x11-x12:y2=x21-x22等,令新的随机变量y去做假设检验.此方法适用于排除物理因素影响,对差异更敏感,所以适用于小样本.而使用两个总体均值比较的方法适用于大样本.

  9. python的collections模块和functools模块

    collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple 我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: >>> ...

  10. HDU1233 还是畅通工程

    题目: Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连 ...