美文网首页Android知识程序员
如何优雅的调戏小米手环

如何优雅的调戏小米手环

作者: hcancan | 来源:发表于2016-07-28 12:22 被阅读0次

在公司调试蓝牙4.0的适合弄到了同事小米的手环,然后网上查到相关的资料,找到别人破解的控制手环震动的接口,于是我就做了一点微小的工作,嘿嘿嘿。
<h3>一、蓝牙4.0介绍</h3>

蓝牙4.0应用开发中比较常与开发者打交道的是GATT(The Generic Attribute Profile)协议,GATT协议确定了ble连接中的Server和Client进行数据交互的过程和格式,它是ble通信的核心,也是ble应用开发者必须了解的。举个简单例子,小米手环中的各种数据,例如行走距离、热量消耗等都是通过GATT进行传输

GATT协议实际跟HTTP协议比较像,在HTTP协议中,Client向Server请求一个特定的URL,然后Server收到请求后,根据这个URL以及相关的参数向Client发送对应的数据。而在GATT中,与URL对应的就是UUID,Client向Server请求特定的UUID,然后Server把这个UUID对应的数据发送给Client。除了读取数据之外,Client还可以向Server对应的UUID写入数据,这个跟HTTP的post请求有点相似。

在GATT,数据是通过分层的方式进行组织的,如下图所示。

GATT Attribute

每一个Server可以有多个Service,每个Service下面可以有多个Characteristic,每一个Characteristic下面可以有多个Descripter。其中Service、Characteristic、Descripter都有自己的唯一UUID。Characteristic、Descripter都对应着特定自己的数据,Client可以向Server请求其对应的数据,并可以对其中的某些数据进行写操作。

其中值得注意的是每一个UUID对应的数据的最大长度被限制为512个字节。

**小米手环的名字对应的UUID如下:**
Service:0000ffe0-0000-1000-8000-00805f9b34fb
Characteristic:0000ff02 -0000-1000-8000-00805f9b34fb </code>

<h3>二、调戏手环</h3>

**小米手环的震动控制对应的UUID如下:**
Service:00001802-0000-1000-8000-00805f9b34fb
Characteristic:00002a06-0000-1000-8000-00805f9b34fb
往该Characteristic中写入1时会震动两次,写入2时会震动八次。</code>

知道了对应的UUID,一切就比较好办了。首先扫描设备,接下来连接设备,然后发现服务,获取到对应的Characteristic,再往里面写数据,一气呵成。


蓝牙连接过程蓝牙连接过程

部分Android代码如下:

        UUID shakeServiceUUID=UUID.fromString("00001802-0000-1000-8000-00805f9b34fb");
        UUID shakeCharaUUID=UUID.fromString("00002a06-0000-1000-8000-00805f9b34fb");
        BluetoothGattService shakeService=mBluetoothGatt.getService(shakeServiceUUID);
        BluetoothGattCharacteristic shakeChara=shakeService.getCharacteristic(shakeCharaUUID);
        //1震动两次,2震动八次
        shakeChara.setValue(new byte[2]);
        mBluetoothGatt.writeCharacteristic(shakeChara);

参考资料:
safari
Xiaomi Mi Band BLE Protocol reverse-engineering and API
小米手环蓝牙协议研究
蓝牙学习之①:调戏小米手环

相关文章

  • 如何优雅的调戏小米手环

    在公司调试蓝牙4.0的适合弄到了同事小米的手环,然后网上查到相关的资料,找到别人破解的控制手环震动的接口,于是我就...

  • 小米手环2手机绑定教程

    相信不少用户已经拿到了心仪已久的小米手环2,那么如何绑定小米手环2呢,下面几张图来告诉你绑定小米手环2的具体步骤。...

  • 小米手环的审美分析

    此文来自:如何评价小米手环?中我的回答。 问:如何评价小米手环? 从价格和功能来看,还是不错的,到时考虑入一个。 ...

  • 小米手环 7 pro将于7月4日发布,你会买吗?

    小米手环7上市不到两个月,小米手环7pro又即将于7月4日发布。这打破了小米手环的发布规律。 按照以往,小米手环每...

  • 为什么你会用小米手环

    在小米手环出现之前,已经有很多手环出现了。但是为什么到现在为止,我见到的人,80%是带的小米手环。 小米手环当年在...

  • 听说你想买小米手环2

    2014年小米发布了他的第一款手环,到今年的小米手环2已经有三款产品上市了。他们分别是小米手环,小米手环光感版及小...

  • 智能手环01

    本人使用过3个智能手环——小米手环1,荣耀手环4 NFC版,荣耀手环5 NFC版。小米手环1属于尝鲜,那时候手环可...

  • 黑加手环展示支付新主张,支付宝离线支付如何应用?

    要说手环本人用过的,也算是不少了,从最早的小米手环,小米手环增强版,小米手环2代,到华米运动手表,华米智能运动手表...

  • 小米手环、米动手表青春版、米动健康手环、米动手环体验

    用过小米手环1标准版、1光感版、小米手环2、小米手环3、米动手表青春版、米动健康手环(出2代了,没钱买,没试)、米...

  • 20160603_周五_早报

    科技头条 1.小米手环2将在6月7日开售,售价149元 小米手环官方微信号今天中午正式发布了小米手环 2 代的相关...

网友评论

    本文标题:如何优雅的调戏小米手环

    本文链接:https://www.haomeiwen.com/subject/snjajttx.html