W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
藍牙類型 | 支付寶客戶端版本需求 | Android 或 iOS 版本需求 |
---|---|---|
BLE 低功耗藍牙 | 支付寶客戶端 10.0.18 或更高版本,若版本較低,建議做 兼容處理。 | Android: 5.0 及以上版本iOS:無版本需求 |
傳統(tǒng)藍牙 | 支付寶客戶端 10.0.18 或更高版本,若版本較低,建議做 兼容處理。my.startBluetoothDevicesDiscovery 方法的 allowDuplicatesKey 和 interval 參數(shù),從支付寶客戶端 10.0.20 版本開始支持。 | - |
iBeacon | 支付寶客戶端 10.1.8 或更高版本,若版本較低,建議做 兼容處理。 | - |
藍牙類型 | 名稱 | 功能說明 |
---|---|---|
低功耗藍牙 | my.connectBLEDevice | 連接低功耗藍牙設備。 |
my.disconnectBLEDevice | 斷開與低功耗藍牙設備的連接。 | |
my.getBLEDeviceCharacteristics | 獲取藍牙設備所有 characteristic(特征值)。 | |
my.getBLEDeviceServices | 獲取所有已發(fā)現(xiàn)的藍牙設備,包括已經(jīng)和本機處于連接狀態(tài)的設備。 | |
my.notifyBLECharacteristicValueChange | 啟用低功耗藍牙設備特征值變化時的 notify 功能。 | |
my.offBLECharacteristicValueChange | 取消監(jiān)聽低功耗藍牙設備的特征值變化的事件。 | |
my.offBLEConnectionStateChanged | 取消低功耗藍牙連接狀態(tài)變化事件的監(jiān)聽。 | |
my.onBLECharacteristicValueChange | 監(jiān)聽低功耗藍牙設備的特征值變化的事件。 | |
my.onBLEConnectionStateChanged | 監(jiān)聽低功耗藍牙連接的錯誤事件,包括設備丟失,連接異常斷開等。 | |
my.readBLECharacteristicValue | 讀取低功耗藍牙設備特征值中的數(shù)據(jù)。 | |
my.writeBLECharacteristicValue | 向低功耗藍牙設備特征值中寫入數(shù)據(jù)。 | |
傳統(tǒng)藍牙 | my.closeBluetoothAdapter | 關閉本機藍牙模塊。 |
my.getBluetoothAdapterState | 獲取本機藍牙模塊狀態(tài)。 | |
my.getBluetoothDevices | 獲取所有已發(fā)現(xiàn)的藍牙設備,包括已經(jīng)和本機處于連接狀態(tài)的設備。 | |
my.getConnectedBluetoothDevices | 獲取處于已連接狀態(tài)的設備。 | |
my.offBluetoothAdapterStateChange | 移除本機藍牙狀態(tài)變化的事件的監(jiān)聽。 | |
my.offBluetoothDeviceFound | 移除尋找到新的藍牙設備事件的監(jiān)聽。 | |
my.onBluetoothDeviceFound | 搜索到新的藍牙設備時觸發(fā)此事件。 | |
my.onBluetoothAdapterStateChange | 監(jiān)聽本機藍牙狀態(tài)變化的事件。 | |
my.openBluetoothAdapter | 初始化小程序藍牙適配器。 | |
my.startBluetoothDevicesDiscovery | 開始搜尋附近的藍牙外圍設備。 | |
my.stopBluetoothDevicesDiscovery | 停止搜尋附近的藍牙外圍設備。 | |
iBeacon | my.getBeacons | 獲取已經(jīng)搜索到的 iBeacon 設備。 |
my.onBeaconServiceChange | 監(jiān)聽 iBeacon 服務的狀態(tài)變化。 | |
my.onBeaconUpdate | 監(jiān)聽 iBeacon 設備的更新事件。 | |
my.startBeaconDiscovery | 開始搜索附近的 iBeacon 設備。 | |
my.stopBeaconDiscovery | 停止搜索附近的 iBeacon 設備。 |
//初始化
my.openBluetoothAdapter({
success: (res) => {
console.log(res);
}
});
//注冊發(fā)現(xiàn)事件
my.onBluetoothDeviceFound({
success: (res) => {
let device = res.devices[0];
//連接發(fā)現(xiàn)的設備
my.connectBLEDevice({
deviceId: deviceId,
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
//停止搜索
my.stopBluetoothDevicesDiscovery({
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
}
});
//注冊連接事件
my.onBLEConnectionStateChanged({
success: (res) => {
console.log(res);
if (res.connected) {
//開始讀寫notify等操作
my.notifyBLECharacteristicValueChange({
deviceId: deviceId,
serviceId: serviceId,
characteristicId: characteristicId,
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
}
}
});
//注冊接收read或notify的數(shù)據(jù)
my.onBLECharacteristicValueChange({
success: (res) => {
console.log(res);
}
});
//開始搜索
my.startBluetoothDevicesDiscovery({
services: ['fff0'],
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
//斷開連接
my.disconnectBLEDevice({
deviceId: deviceId,
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
//注銷事件
my.offBluetoothDeviceFound();
my.offBLEConnectionStateChanged();
my.offBLECharacteristicValueChange();
//退出藍牙模塊
my.closeBluetoothAdapter({
success: (res) => {
},
fail:(res) => {
},
complete: (res)=>{
}
});
錯誤碼 | 說明 | 解決方案 | |
---|---|---|---|
10000 | 未初始化藍牙適配器。 | 調(diào)用 my.openBluetoothAdapter,進行藍牙適配器初始化。 | |
10001 | 當前藍牙適配器不可用。 | 檢查當前設備對 BLE 的支持情況,并開啟藍牙功能。 | |
10002 | 沒有找到指定設備。 | 檢查 deviceId,并確認已開啟目標藍牙外設的廣播。 | |
10003 | 連接失敗。 | 檢查 deviceId,并確認已開啟目標藍牙外設的廣播。 | |
10004 | 沒有找到指定服務。 | 檢查 serviceId,并確認目標外設已擁有該服務。 | |
10005 | 沒有找到指定特征值。 | 確保 characteristicId 正確、檢查目標外設特定 service 下已具備該特征。 | |
10006 | 當前連接已斷開。 | 連接斷開,重新連接。 | |
10007 | 當前特征值不支持此操作。 | 檢查特征值具備讀、寫、通知等功能。 | |
10008 | 其余所有系統(tǒng)上報的異常。 | 其他未知錯誤,具體問題具體分析。 | |
10009 | Android 系統(tǒng)特有,系統(tǒng)版本低于 4.3 不支持 BLE。 | 提示用戶該安卓系統(tǒng)版本不支持使用 。 | |
10010 | 沒有找到指定描述符。 | 使用正確的 serviceId、characteristicId。 | |
10011 | 設備 ID 不可用,或為空。 | 使用正確的 deviceId。 | |
10012 | 服務 ID 不可用,或為空。 | 使用正確的 serviceId。 | |
10013 | 特征 ID 不可用,或為空。 | 使用正確的 characteristicId。 | |
10014 | 發(fā)送的數(shù)據(jù)為空或格式錯誤。 | 確保寫數(shù)據(jù)或者 HEX 轉(zhuǎn)化正確。 | |
10015 | 操作超時。 | 重新操作。 | |
10016 | 缺少參數(shù)。 | 檢查調(diào)用的參數(shù),并重新操作。 | |
10017 | 寫入特征值失敗。 | 寫失敗。確保外設特征支持寫操作,不要斷開連接。 | |
10018 | 讀取特征值失敗。 | 讀失敗。確保外設特征支持讀操作,不要斷開連接。 |
A:不是,調(diào)用此 API 返回的是您寫入成功的值。
A:是的,調(diào)用此 API 需要先寫入才能監(jiān)聽到。為防止多次注冊事件監(jiān)聽導致一次事件多次回調(diào),建議每次調(diào)用 on 方法監(jiān)聽事件之前,先調(diào)用 off 方法,關閉之前的事件監(jiān)聽。
A:10014 錯誤是由于發(fā)送的數(shù)據(jù)為空或者格式錯誤導致,建議檢查寫入的數(shù)據(jù)或 HEX 轉(zhuǎn)化是否有錯誤。
A:不可以,寫入特征值需要使用 16 進制的字符串,并限制在 20 字節(jié)內(nèi)。
A:
11:22:33:44:55:66
00000000-0000-0000-0000-000000000000
A:請確保設備已發(fā)出廣播。若接口傳入 services,請確保設備的廣播內(nèi)容中包含 service 的 UUID。
A:小程序藍牙功能需要依賴 GPS 定位,因為大概 5 分之一的手機藍牙需要依賴 GPS。 建議接入藍牙時先引導用戶打開 GPS 定位服務。
A:請確保傳入的 deviceId 正確,并且設備發(fā)出的信號足夠強。在信號弱的情況下,可能會出現(xiàn)連接設備失敗。
A:
A:
A:由于多次匿名函數(shù)注冊監(jiān)聽了同一事件。所以建議在每次調(diào)用 on 方法監(jiān)聽事件之前,先調(diào)用 off 方法關閉之前的事件監(jiān)聽。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: