我不確定日誌,但這裏是如何獲取數據。
onLeScan()回調具有打印在日誌中的所有信息。要獲取設備信息,您可以使用回撥中的設備對象(例如device.getAddress())。掃描記錄將位於回調的scanRecord字節數組中。您需要解析數組以獲取信息。我用下面的代碼來解析掃描信息。
public WeakHashMap<Integer, String> ParseRecord(byte[] scanRecord) {
WeakHashMap<Integer, String> ret = new WeakHashMap<>();
int index = 0;
while (index < scanRecord.length) {
int length = scanRecord[index++];
//Zero value indicates that we are done with the record now
if (length == 0) break;
int type = scanRecord[index];
//if the type is zero, then we are pass the significant section of the data,
// and we are thud done
if (type == 0) break;
byte[] data = Arrays.copyOfRange(scanRecord, index + 1, index + length);
if (data != null && data.length > 0) {
StringBuilder hex = new StringBuilder(data.length * 2);
// the data appears to be there backwards
for (int bb = data.length - 1; bb >= 0; bb--) {
hex.append(String.format("%02X", data[bb]));
}
ret.put(type, hex.toString());
}
index += length;
}
return ret;
}
請參考下面的鏈接瞭解ble ble的廣告。
BLE obtain uuid encoded in advertising packet
希望這有助於。
感謝您的幫助。處理scanRecord字節數組是有意義的。 – stev90098289dev
感謝您的幫助。處理scanRecord字節數組是有意義的。但是,從LogCat中看來,BluetoothLeScanner類或onScanResult()方法已經使用scanRecord字節數組處理並輸出標籤良好的字符串,包括可讀的MANUFACTURING DATA和其他數據信息。如果我可以使用LogCat中的這個字符串,它會很方便。 – stev90098289dev