尝试将Mi Band与GATT服务和特征配对,但Band没有响应。对于Android和iOS发行相同。仅适用于Mi Fit官方应用。
除了电池,日期和其他信息外,没有更新或通知更新任何特征。
注意:-尝试过的服务/特性-
答案 0 :(得分:0)
在开始获取数据之前,您需要对应用进行身份验证。步骤是:
有this one之类的几种教程。
答案 1 :(得分:0)
我注意到在 Mi Band 3 中,即使没有配对(身份验证),您也可以访问心率数据和心率测量的详细信息:
let BLE_Heart_Rate_Service_CBUUID = CBUUID(string: "0x180D")
let Heart_rate_UUID = CBUUID(string: "2A37")
现在把下面的代码放在didUpdateValueFor
if characteristic.uuid == Heart_rate_UUID {
print("HeartRate_UUID reading: ", characteristic.value)
peripheral.readValue(for: characteristic)
print("HEART RATE: ", getHeartRate(heartRateData: characteristic.value!))
}
使用 getHeartRate() 读取心率。
func getHeartRate(heartRateData:Data) -> Int{
print("--- UPDATING Heart Rate..")
var buffer = [UInt8](repeating: 0x00, count: heartRateData.count)
heartRateData.copyBytes(to: &buffer, count: buffer.count)
var bpm:UInt16?
if (buffer.count >= 2){
if (buffer[0] & 0x01 == 0){
bpm = UInt16(buffer[1]);
}else {
bpm = UInt16(buffer[1]) << 8
bpm = bpm! | UInt16(buffer[2])
}
}
if let actualBpm = bpm{
return Int(actualBpm)
}else {
return Int(bpm!)
}
}