Android Ble蓝牙中如何获取RawData ,UUID,Major,Minor,Measured power at 1 meter的数据。
前段时间公司刚好叫我做Ble读写,其中就需要获得RawData ,UUID,Major,Minor,Measured power at 1 meter等数据。
网上找了,但是资源不多。
今天就告诉大家怎么获取这些值,当然也有可能是我们的供应商是这种获取方式,可能并不是通用的。
大家就作为参考。
首先我用的是第三方bluetoothkit 进行连接的。
不知道的小伙伴可以去github先了解一下。https://github.com/dingjikerbo/Android-BluetoothKit
在 mClient.search()成功后可以在onDeviceFounded()中使用device.scanRecord()获取 RawData
把获取的RawData转换成16进制字符串
String data = bytesToHex(device.scanRecord);
static final char[] hexArray = "0123456789ABCDEF".toCharArray();private static String bytesToHex(byte[] bytes) {char[] hexChars = new char[bytes.length * 2];for (int j = 0; j < bytes.length; j++) {int v = bytes[j] & 0xFF;hexChars[j * 2] = hexArray[v >>> 4];hexChars[j * 2 + 1] = hexArray[v & 0x0F];}return new String(hexChars);
}
你会获取一串很长的字符串,例子:
0201061AFF4C000215 B75C49D204A34071A0B535853EB0830727D3BA933C 0A094D6974756F54657374000000000000000000000000000000000000000000
这条字符里包含了UUID,Major,Minor,Measured power at 1 meter等数据
由于是16进制的数据,必须要先剪切,然后在转换成10进制得到Major,Minor,Measured power at 1 meter。
以下是具体数据位置
微信的UUID为固定值,仅需修改Major和Minor值即可。
uint8_t advertData[ ] ={
// IBeacon format data
0x02, // 1:length
0x01, // 2:type Flag
0x06, // 3:dicoverable mode & not support BR/EDR
0x1A, // 4:length
0xFF, // 5:type="More 16-bit UUIDs available"
0x4C,0x00, // 6-7: Apple company Id
0x02,0x15, // 8-9:For all proximity beacon,specify data type & remaining data length
//10-25: UUID
//Wechat test uuid:FDA50693-A4E2-4FB1-AFCF-C6EB07647825, Major: 10, Minor: 7
0xFD,0xA5,0x06,0x93,
0xA4,0xE2,0x4F,0xB1,
0xAF,0xCF,0xC6,0xEB,
0x07,0x64,0x78,0x25,
0x00,0x0A, // 26-27:major id
0x00,0x07, // 28-29:minor id
0xB6, // 30:mesured power
};
注意转换出来的字符串,2个字符长度等于一个字节。不要算错了
major在26-27字节
minor在26-27字节
:UUID在10-25字节
Android Ble蓝牙中如何获取RawData ,UUID,Major,Minor,Measured power at 1 meter的数据。相关推荐
- Android BLE蓝牙详细解读
代码地址如下: http://www.demodashi.com/demo/15062.html 随着物联网时代的到来,越来越多的智能硬件设备开始流行起来,比如智能手环.心率检测仪.以及各式各样的智能 ...
- android蓝牙设置特征属性,Android BLE蓝牙详细解读(二)
上篇文章主要介绍了关于BLE的一些基础操作,我们能够大概了解到蓝牙操作的一些流程,上文末介绍了本人的一个BLE开源库,支持蓝牙一对多的连接方式,该库封装了蓝牙的开启.扫描.连接.断开.连接超时...一 ...
- Android BLE蓝牙开发知识总结
Android BLE蓝牙开发知识总结 1.蓝牙介绍 1.1什么是蓝牙? 蓝牙( Bluetooth® ):是一种无线技术标准,可实现固定设备.移动设备和楼宇个人域网之间的短距离数据交换(使用2 ...
- Android Ble蓝牙开发总结
Android Ble蓝牙开发总结 前言 本文总结了ble的搜索,连接,读写操作.以及在开发过程中可能遇到的坑. 首先我们需要知道,什么是ble. 蓝牙发展至今经历了8个版本的更新.1.1.1.2.2 ...
- Android BLE蓝牙踩坑总结
简介 自从Android-BLE库开源了一段时间以来,越来越多的小伙伴问到了各种各样的关于BLE的奇怪问题,在这里我想跟大家分享一下本人对于Android BLE蓝牙的一些看法和解决方式,避免刚接触的 ...
- android ble蓝牙接收不到数据_Android BLE蓝牙开发-读写数据 获取UUID
最近在做一个蓝牙智能锁的项目,需要在Android APP 上使用 Ble低功耗蓝牙 和单片机蓝牙设备进行通信,网上关于搜索 连接 读写数据的资料太多了,我在最后放了一个Demo,完整实现搜索 连 ...
- Android BLE蓝牙4.0开发 实现扫描、连接、通讯、获取通知、特性等 (一、打开蓝牙 进行扫描)
目录 首先说下蓝牙4.0 目前android蓝牙有2种: ble蓝牙开发流程: 1.首先当然是进行权限申请啦: 2.获取蓝牙适配器 BluetoothAdapter 3.打开蓝牙 4.关闭蓝牙 5.在 ...
- Android BLE 蓝牙开发指南(三)外围设备端开发详解
Android BLE开发指南(一)入门基础 Android BLE开发指南(二)中心设备端程序开发详解 这篇文章将会详细讲解低功耗蓝牙外围设备端程序开发的主要流程.对于Android开发者而言,或许 ...
- Android Ble蓝牙开发
BLE Android 应用 开发 1.权限设置 2.获取蓝牙设备管理器 3.设备搜索 3.1 停止搜索 4.设备连接 5.设备的重连 6.设备的断开与服务关闭 7.通知的注册与接收 8.数据的主动读 ...
- Android BLE 蓝牙实践
前言 最近需要在产品中集成一个蓝牙门锁的功能,之前没有接触过蓝牙(包括经典蓝牙),所以没有头绪,只能硬着头皮找资料,开始挖坑填坑的日子,这篇文章内容是个人经过学习和实践以后总结的,有不对地方请大家指正 ...
最新文章
- linux火狐自动更新,CentOS 7手动更新firefox | Linux系统运维联盟
- Ubuntu更换apt镜像源
- python list删除元素速度慢_python list(python list删除元素是要注意的坑点)
- 求数组第二大元素 和 字符串拷贝的实现
- 比较 Python(Python 与其他语言的比较)
- unity将预制体写成fbx_unity 将fbx转成prefab
- 电影购票c语言程序,C语言电影购票系统小样
- FOC——14.15.过流保护电路与单片机外围电路
- 单片机的多路温度采集系统
- android 桌面操作系统,Android主题美化: Win7桌面完成版Android Seven Pro V2
- 8.9 马蹄印 2493
- Java游戏---俄罗斯方块
- 算法的时间复杂度、渐进表达式、渐进性分析和渐进符号(O、Ω、θ、o、ω)
- 前端面试题,速看webP,把握住网页提速小细节!亲测可用!
- PSNR、SSIM、BD-rate和BD-PSNR
- 螺旋扩孔的效率高,但侧壁质量不如步进扩孔
- Arduino + RFID 读取 IC 卡 Arduino uno中获得RFID的UID 并通过串口转发RFID卡号
- 微型计算机最早应用于,计算机文化基础题库(含答案)
- PS 2019 cc衣服换色+去白边
- 微众银行再次入驻微信小程序,人人可申请,66万人提额100亿,发福利啦!!!...