以下均为自己在Android ble开发项目中遇到的问题

1.尽量不要在BluetoothGattCallback里面的回调函数中执行读写通知操作,最多一个,因为例如在onServicesDiscovered回调函数中只会传一个写操作,不管里面有多少个,而通知如setCharacteristicNotification(characterist,true)也有写操作,所以如果需要同时执行多步征特操作时,不能在回调函数中执行,不然只会执行第一步特征操作。

2.读写通知都是异步操作,但是一般必须一步一步地执行,只有当一个写特征操作完成并回调后才能执行下一个,不然只会执行最后一个,所以需要在两个写特征操作之间加一个睡眠时间如Thread.sleep(500),具体时间自己把握;

3.很多蓝牙设备产家都会弄入自己的编码格式,所以有必要需要阅读对应品牌的通讯协议,因为发送的数据和接收的数据都需要根据产品的通讯协议来解读,可能在读取蓝牙设备的数据时需要先向设备发送命令,让其响应才行,有时还不只需要写一条命令,我遇到的问题是需要写两条不同的命令

4.status为133时并不一定是GATT没有关闭,也有可能是蓝牙适配器没电了,如果软件代码自认为没问题,那就观察一下蓝牙是否正常工作,蓝牙灯是否有在闪,我遇到的是蓝牙灯没闪数据就读不到,然后status变为8并且再连接之后会出现133,只有当有电蓝牙灯亮时133才会消失且正常读取数据。

5.使用characteristic.getValue()时得到的是一个byte[]数组,可以将其转化为十六进制字符串方便查看协议解码,在写特征操作设置值是应该传入byte[],因为自己认为写入的字符串是十六进制的,其实不是,应该将字符串转为byte[]

6.蓝牙设备一般只能发送20个字节的数据,可能一次接收的数据不是完整的数据,需要将后面的数据连接起来构成一串完整的数据

注:未经允许禁止转载!!!

Sony x85e android tv,Android ble蓝牙使用注意相关推荐

  1. Android App 连接ble蓝牙模块并进行通讯

    Android App 连接ble蓝牙模块并进行通讯 对于蓝牙的基础知识我在这里就不赘述了,直接来干货,讲解连接ble蓝牙模块并进行通讯,通讯使用广播模式,结尾附上一个项目的demo.精彩内容即将开始 ...

  2. Android ble连接过程,Android开发之ble蓝牙

    前言 由于自己工作中需要开发ble的项目,于是在折腾了一段时间后也有所了解,便想写下来分享给大家,同时对自己的知识也是一种巩固 1.BLE介绍 BLE是Bluetooth Low Energy的缩写, ...

  3. Android BLE学习(三):编写自己的 BLE蓝牙读写工具(功能仿照nrf master control panel)

    http://my.csdn.net/lidec 背景 由于nordic官方的nrf master control panel只提供了apk,很多同学学习起来都得自己摸索蓝牙的读写,项目中整理了BLE ...

  4. android ble蓝牙接收不到数据_Android蓝牙4.0 Ble读写数据详解 -2

    Android蓝牙4.0 Ble读写数据详解 -2 上一篇说了如何扫描与链接蓝牙 这篇文章讲讲与蓝牙的数据传输,与一些踩到的坑. 先介绍一款调试工具,专门调试Ble蓝牙的app.名字叫:nRF-Con ...

  5. Android BLE蓝牙详细解读

    代码地址如下: http://www.demodashi.com/demo/15062.html 随着物联网时代的到来,越来越多的智能硬件设备开始流行起来,比如智能手环.心率检测仪.以及各式各样的智能 ...

  6. android蓝牙设置特征属性,Android BLE蓝牙详细解读(二)

    上篇文章主要介绍了关于BLE的一些基础操作,我们能够大概了解到蓝牙操作的一些流程,上文末介绍了本人的一个BLE开源库,支持蓝牙一对多的连接方式,该库封装了蓝牙的开启.扫描.连接.断开.连接超时...一 ...

  7. Android BLE蓝牙踩坑总结

    简介 自从Android-BLE库开源了一段时间以来,越来越多的小伙伴问到了各种各样的关于BLE的奇怪问题,在这里我想跟大家分享一下本人对于Android BLE蓝牙的一些看法和解决方式,避免刚接触的 ...

  8. Android蓝牙开发 — 经典蓝牙BLE蓝牙

    一,前期基础知识储备 1)蓝牙是一种支持设备之间短距离通信的无线电技术(其他还包括红外,WIFI): 支持移动电话.笔记本电脑.无线耳机等设备之间进行信息的交换: Android支持的蓝牙协议栈:Bl ...

  9. Android BLE 蓝牙开发指南(三)外围设备端开发详解

    Android BLE开发指南(一)入门基础 Android BLE开发指南(二)中心设备端程序开发详解 这篇文章将会详细讲解低功耗蓝牙外围设备端程序开发的主要流程.对于Android开发者而言,或许 ...

最新文章

  1. 三层交换机不能完全取代路由的作用
  2. c++和java哪个难_前端和Java开发哪个难?哪个学习容易一点?
  3. c#如何wmf图片转换成png图片_每日一学:如何将png图片转换为jpg图片
  4. 从桌面到移动:异构计算翻天覆地的技术变革
  5. vue axios 简单封装以及思考
  6. [学习笔记]Javascript可选的分号
  7. Intel MKL 稀疏矩阵求解PARDISO 函数
  8. FTP文件服务搭建与同步传输
  9. esp8266教程:smartconfig智能配网
  10. 基于51单片机的自动电梯控制模拟系统设计
  11. 解决Tomcat中文乱码问题——windows平台
  12. Outlook的服务器设置中POP3协议,在outlook的服务器设置中POP3协议是指
  13. 【Python】基于Python获取腾讯位置大数据并进行数据清洗与可视化
  14. Windows下WinRar创建自解压文件
  15. conflicting requests nothing provides libpq.so.5(RHPG_9.6)(64bit) needed **
  16. 17. 权重衰退(weight_decay)
  17. ORACLE提供了 三种例外,oracle(7)例外处理
  18. EF实体类种的Virtual关键字作用
  19. The Pilots Brothers‘ refrigerator(思维)
  20. 用c语言写出10以内加减法,求助 给小学生出题,自己选加减乘除 做10题 10以内的数 然后统计分...

热门文章

  1. 强烈推荐!2018最受欢迎的8款产品原型工具
  2. Java web 2022跟学尚硅谷(一) 前端基础
  3. 高通安卓Q显示屏不同角度旋转竖屏横屏切换
  4. vue使用iframe传递参数问题
  5. 机器学习中常见的六种分类算法(附Python源码+数据集)
  6. 用FPGA实现闸门法频率计(黑金EP4CE6F17C8N)
  7. 【wikioi】1041 Car的旅行路线
  8. 学习吸收优秀者的开发习惯,并自己复述出来
  9. 问题 A: 初中化学
  10. 北京大学肖臻老师《区块链技术与应用》公开课 03-BTC-数据结构