日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android Ble蓝牙中如何获取RawData ,UUID,Major,Minor,Measured power at 1 meter的数据。

發布時間:2023/12/31 Android 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的数据。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。