高端手機(jī)網(wǎng)站建設(shè)網(wǎng)絡(luò)營(yíng)銷的五個(gè)發(fā)展階段
iOS 寫入數(shù)據(jù)超過(guò)200字節(jié)報(bào)錯(cuò)
文章目錄
- iOS 寫入數(shù)據(jù)超過(guò)200字節(jié)報(bào)錯(cuò)
- 官方建議:
- 報(bào)錯(cuò)問(wèn)題
- 解決
writeblecharacteristicvalue
官方建議:
- 并行調(diào)用多次會(huì)存在寫失敗的可能性。
APP不會(huì)對(duì)寫入數(shù)據(jù)包大小做限制
,但系統(tǒng)與藍(lán)牙設(shè)備會(huì)限制藍(lán)牙4.0單次傳輸?shù)臄?shù)據(jù)大小,超過(guò)最大字節(jié)數(shù)后會(huì)發(fā)生寫入錯(cuò)誤,建議每次寫入不超過(guò)20字節(jié)
。- 若單次寫入數(shù)據(jù)過(guò)長(zhǎng),iOS 上存在系統(tǒng)不會(huì)有任何回調(diào)的情況(包括錯(cuò)誤回調(diào))。
- 安卓平臺(tái)上,在調(diào)用 notifyBLECharacteristicValueChange 成功后立即調(diào)用 writeBLECharacteristicValue 接口,在部分機(jī)型上會(huì)發(fā)生 10008 系統(tǒng)錯(cuò)誤
報(bào)錯(cuò)問(wèn)題
- iPhone 6:寫入數(shù)據(jù)超過(guò)200字節(jié)時(shí),報(bào)錯(cuò)
當(dāng)前特征值不支持此操作
,寫入失敗; - iPhone 11、iPhone 12等,能正常寫入數(shù)據(jù),其他機(jī)型沒(méi)有細(xì)測(cè);
{"errMsg": "writeBLECharacteristicValue:fail Error Domain=CBATTErrorDomain Code=17 \"Resources are insufficient.\" UserInfo={NSLocalizedDescription=Resources are insufficient.},https://ask.dcloud.net.cn/article/282","errCode": 10007,"code": 10007
}
解決
- 經(jīng)測(cè)試,iPhone6 寫入數(shù)據(jù)不超過(guò)160字節(jié)時(shí),寫入成功,正常通信;
- 僅供參考
const writeBLECharacteristicValue = (hex) => {let buffer = hexToArrayBuffer(hex); // 16進(jìn)制轉(zhuǎn)ArrayBuffer,之前有分享過(guò)uni.writeBLECharacteristicValue({deviceId,serviceId,characteristicId,value: buffer,success(res) {console.log('writeBLECharacteristicValue success', res.errMsg)}})
}