android 蓝牙4.0开--发关于BLE和iBeacon的一些笔记

本文介绍了在Android平台上进行蓝牙低功耗(BLE)和iBeacon开发的经验,探讨了BLE设备如何支持iBeacon标准,以及两者中UUID的不同作用。iBeacon的UUID在扫描回调`onLeScan`的二进制流中获取,用于标识iBeacon设备的身份,而BLE的UUID则定义了各种服务和特性,如电量、计步器和心率等,供手机读写数据。
摘要由CSDN通过智能技术生成

最近公司要搞智能手环,其中就涉及到一些BLE和iBeacon的知识,买了一些设备并且写了一些demo.

首先,简单的说,市面上的BLE设备基本都支持apple的iBeacon标准,毕竟apple大厂. 可以这么理解 BLE包括了包含了iBeacon.

而iBeacon的标准在于包含了UUID major minor 这是三用来标识身份的信息,同样,BLE中也有UUID这个属性,但是和iBeacon的UUID不是一回事.

iBeacon的UUID是从void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) 这个回调中的二进制流scanRecord 转换而来,而BLE的UUID是BLE的制造商为BLE中的各种服务和特性写入的,BLE包含了很多Service、Characteristic、Descriptor,这些可以理解成电量\计步器\心率等智能设备的服务,然后手机通过BLE提供的UUID去访问这些数据,或者写入数据.
而iBeacon的UUID是用来确定这个iBeacon的唯一标识,UUID major minor三者就类似于 省市区的关系,UUID是省,确定了省后就是市区.
比如,我们公司生产了一种符合iBeacon标准的BLE设备,我们的APP要识别这个设备是不是我们公司生产的,就用提前设定好的iBeacon的UUID去寻找,找到之后,再用BLE的UUID使用里面的服务

void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord)
这个回调中scanRecord转换成iBeacon的代码如下

参考:https://github.com/AltBeacon/android-beacon-library

public class iBeaconClass {

    static public  class iBeacon{  
        public String name;  
        public int major;  
        public int minor;  
        public String proximityUuid;  
        public String bluetoothAddress;  
        public int txPower;  
        public int rssi;  
    }  
    public static iBeacon fromScanData(BluetoothDevice device, int rssi, byte[] scanData) {

        int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值