支付寶小程序API藍牙
初始化藍牙適配器。
名稱 |
類型 |
描述 |
isSupportBLE |
Boolean |
是否支持 BLE |
錯誤碼描述
error |
描述 |
12 |
藍牙未打開 |
13 |
與系統(tǒng)服務的鏈接暫時丟失 |
14 |
未授權(quán)支付寶使用藍牙功能 |
15 |
未知錯誤 |
示例代碼
my.openBluetoothAdapter({
success: (res) => {
},
fail:(res) => {
},
complete: (res)=>{
}
});
my.closeBluetoothAdapter
關(guān)閉本機藍牙模塊。
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
錯誤碼描述
示例代碼
my.closeBluetoothAdapter({
success: (res) => {
},
fail:(res) => {
},
complete: (res)=>{
}
});
my.getBluetoothAdapterState
獲取本機藍牙模塊狀態(tài)。
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
success 返回值
名稱 |
類型 |
描述 |
discovering |
Boolean |
是否正在搜索設(shè)備 |
available |
Boolean |
藍牙模塊是否可用(需支持 BLE 并且藍牙是打開狀態(tài)) |
錯誤碼描述
示例代碼
my.getBluetoothAdapterState({
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
my.startBluetoothDevicesDiscovery
開始搜尋附近的藍牙外圍設(shè)備。搜索結(jié)果將在 onBluetoothDeviceFound 事件中返回。
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
services |
Array |
否 |
藍牙設(shè)備主 service 的 uuid 列表 |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
錯誤碼描述
示例代碼
my.startBluetoothDevicesDiscovery({
services: ['fff0'],
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
my.stopBluetoothDevicesDiscovery
停止搜尋附近的藍牙外圍設(shè)備。
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
錯誤碼描述
示例代碼
my.stopBluetoothDevicesDiscovery({
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
my.getBluetoothDevices
獲取所有已發(fā)現(xiàn)的藍牙設(shè)備,包括已經(jīng)和本機處于連接狀態(tài)的設(shè)備。
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
success 返回值
名稱 |
類型 |
描述 |
devices |
Array |
已發(fā)現(xiàn)的設(shè)備列表 |
device對象
名稱 |
類型 |
描述 |
name |
String |
藍牙設(shè)備名稱,某些設(shè)備可能沒有 |
deviceName(兼容舊版本) |
String |
值與 name 一致 |
localName |
String |
廣播設(shè)備名稱 |
deviceId |
String |
設(shè)備 Id |
RSSI |
Number |
設(shè)備信號強度 |
advertisData |
Hex String |
設(shè)備的廣播內(nèi)容 |
manufacturerData |
Hex String |
設(shè)備的manufacturerData |
錯誤碼描述
示例代碼
my.getBluetoothDevices({
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
my.getConnectedBluetoothDevices
獲取處于已連接狀態(tài)的設(shè)備。
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
services |
Array |
否 |
藍牙設(shè)備主 service 的 uuid 列表 |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
success 返回值
名稱 |
類型 |
描述 |
devices |
Array |
已連接的設(shè)備列表 |
device對象
名稱 |
類型 |
描述 |
name |
String |
藍牙設(shè)備名稱,某些設(shè)備可能沒有 |
deviceName(兼容舊版本) |
String |
值與 name 一致 |
localName |
String |
廣播設(shè)備名稱 |
deviceId |
String |
設(shè)備 Id |
RSSI |
Number |
設(shè)備信號強度 |
advertisData |
Hex String |
設(shè)備的廣播內(nèi)容 |
manufacturerData |
Hex String |
設(shè)備的manufacturerData |
錯誤碼描述
示例代碼
my.getConnectedBluetoothDevices({
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
my.connectBLEDevice
連接低功耗藍牙設(shè)備。
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
deviceId |
String |
是 |
藍牙設(shè)備id |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
錯誤碼描述
示例代碼
my.connectBLEDevice({
// 這里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中獲取
deviceId: deviceId,
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
my.disconnectBLEDevice
斷開與低功耗藍牙設(shè)備的連接。
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
deviceId |
String |
是 |
藍牙設(shè)備id |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
錯誤碼描述
示例代碼
my.disconnectBLEDevice({
deviceId: deviceId,
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
my.writeBLECharacteristicValue
向低功耗藍牙設(shè)備特征值中寫入數(shù)據(jù)。
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
deviceId |
String |
是 |
藍牙設(shè)備 id,參考 device 對象 |
serviceId |
String |
是 |
藍牙特征值對應 service 的 uuid |
characteristicId |
String |
是 |
藍牙特征值的 uuid |
value |
Hex String |
是 |
藍牙設(shè)備特征值對應的值,16進制字符串 |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
錯誤碼描述
error |
描述 |
12 |
寫入數(shù)據(jù)失敗 |
示例代碼
my.writeBLECharacteristicValue({
deviceId: deviceId,
serviceId: serviceId,
characteristicId: characteristicId,
value: 'fffe',
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
my.readBLECharacteristicValue
讀取低功耗藍牙設(shè)備特征值中的數(shù)據(jù)。調(diào)用后在my.onBLECharacteristicValueChange()
事件中接收數(shù)據(jù)返回。
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
deviceId |
String |
是 |
藍牙設(shè)備 id,參考 device 對象 |
serviceId |
String |
是 |
藍牙特征值對應 service 的 uuid |
characteristicId |
String |
是 |
藍牙特征值的 uuid |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
success 返回值
名稱 |
類型 |
描述 |
characteristic |
Object |
設(shè)備特征值信息 |
characteristic對象
藍牙設(shè)備characteristic(特征值)信息
名稱 |
類型 |
描述 |
characteristicId |
String |
藍牙設(shè)備特征值的 uuid |
serviceId |
String |
藍牙設(shè)備特征值對應服務的 uuid |
value |
Hex String |
藍牙設(shè)備特征值的value |
錯誤碼描述
error |
描述 |
12 |
讀取數(shù)據(jù)失敗 |
示例代碼
my.readBLECharacteristicValue({
deviceId: deviceId,
serviceId: serviceId,
characteristicId: characteristicId,
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
my.notifyBLECharacteristicValueChange
啟用低功耗藍牙設(shè)備特征值變化時的 notify 功能。注意:必須設(shè)備的特征值支持notify才可以成功調(diào)用,具體參照 characteristic 的 properties 屬性 另外,必須先啟用notify才能監(jiān)聽到設(shè)備 characteristicValueChange 事件。
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
deviceId |
String |
是 |
藍牙設(shè)備 id,參考 device 對象 |
serviceId |
String |
是 |
藍牙特征值對應 service 的 uuid |
characteristicId |
String |
是 |
藍牙特征值的 uuid |
descriptorId |
String |
否 |
notify 的 descriptor 的 uuid (只有android 會用到,非必填,默認值00002902-0000-10008000-00805f9b34fb) |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
錯誤碼描述
示例代碼
my.notifyBLECharacteristicValueChange({
deviceId: deviceId,
serviceId: serviceId,
characteristicId: characteristicId,
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
my.getBLEDeviceServices
獲取藍牙設(shè)備所有 service(服務)
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
deviceId |
String |
是 |
藍牙設(shè)備 id,參考 device 對象 |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
success 返回值
名稱 |
類型 |
描述 |
services |
Array |
設(shè)備service 對象列表,詳見下表特征值信息 |
service對象
藍牙設(shè)備service(服務)信息
名稱 |
類型 |
描述 |
serviceId |
String |
藍牙設(shè)備服務的 uuid |
isPrimary |
Boolean |
該服務是否為主服務 |
錯誤碼描述
示例代碼
my.getBLEDeviceServices({
deviceId: deviceId,
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
my.getBLEDeviceCharacteristics
獲取藍牙設(shè)備所有 characteristic(特征值)
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
deviceId |
String |
是 |
藍牙設(shè)備 id,參考 device 對象 |
serviceId |
String |
是 |
藍牙特征值對應 service 的 uuid |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
success 返回值
名稱 |
類型 |
描述 |
characteristics |
Array |
設(shè)備特征值列 |
characteristic對象
藍牙設(shè)備 characteristic (特征值)信息
名稱 |
類型 |
描述 |
characteristicId |
String |
藍牙設(shè)備特征值的 uuid |
serviceId |
String |
藍牙設(shè)備特征值對應服務的 uuid |
value |
Hex String |
藍牙設(shè)備特征值對應的16進制值 |
properties |
Object |
該特征值支持的操作類型 |
properties 對象
名稱 |
類型 |
描述 |
read |
boolean |
該特征值是否支持 read 操作 |
write |
boolean |
該特征值是否支持 write 操作 |
notify |
boolean |
該特征值是否支持 notify 操作 |
indicate |
boolean |
該特征值是否支持 indicate 操作 |
錯誤碼描述
示例代碼
my.getBLEDeviceCharacteristics({
deviceId: deviceId,
serviceId: serviceId,
success: (res) => {
console.log(res)
},
fail:(res) => {
},
complete: (res)=>{
}
});
my.onBluetoothDeviceFound
尋找到新的藍牙設(shè)備時觸發(fā)此事件。
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
success 返回值
名稱 |
類型 |
描述 |
devices |
Array |
新搜索到的設(shè)備列表 |
device對象
名稱 |
類型 |
描述 |
name |
String |
藍牙設(shè)備名稱,某些設(shè)備可能沒有 |
deviceName(兼容舊版本) |
String |
值與 name 一致 |
localName |
String |
廣播設(shè)備名稱 |
deviceId |
String |
設(shè)備 Id |
RSSI |
Number |
設(shè)備信號強度 |
advertisData |
Hex String |
設(shè)備的廣播內(nèi)容 |
示例代碼
my.onBluetoothDeviceFound({
success: (res) => {
console.log(res);
}
});
my.offBluetoothDeviceFound
移除尋找到新的藍牙設(shè)備事件的監(jiān)聽。
示例代碼
my.offBluetoothDeviceFound();
my.onBLECharacteristicValueChange
監(jiān)聽低功耗藍牙設(shè)備的特征值變化的事件。
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
success 返回值
名稱 |
類型 |
描述 |
deviceId |
String |
藍牙設(shè)備 id,參考 device 對象 |
serviceId |
String |
藍牙特征值對應 service 的 uuid |
characteristicId |
String |
藍牙特征值的 uuid |
value |
Hex String |
特征值最新的16進制值 |
示例代碼
my.onBLECharacteristicValueChange({
success: (res) => {
console.log(res);
}
});
my.offBLECharacteristicValueChange
移除低功耗藍牙設(shè)備的特征值變化事件的監(jiān)聽。
示例代碼
my.offBLECharacteristicValueChange();
my.onBLEConnectionStateChanged
監(jiān)聽低功耗藍牙連接的錯誤事件,包括設(shè)備丟失,連接異常斷開等。
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
success 返回值
名稱 |
類型 |
描述 |
deviceId |
String |
藍牙設(shè)備 id,參考 device 對象 |
connected |
Boolean |
連接目前的狀態(tài) |
示例代碼
my.onBLEConnectionStateChanged({
success: (res) => {
console.log(res);
}
});
my.offBLEConnectionStateChanged
移除低功耗藍牙連接的錯誤事件的監(jiān)聽。
示例代碼
my.offBLEConnectionStateChanged();
my.onBluetoothAdapterStateChange
監(jiān)聽本機藍牙狀態(tài)變化的事件。
入?yún)?/a>
名稱 |
類型 |
必填 |
描述 |
success |
Function |
否 |
調(diào)用成功的回調(diào)函數(shù) |
fail |
Function |
否 |
調(diào)用失敗的回調(diào)函數(shù) |
complete |
Function |
否 |
調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
success 返回值
名稱 |
類型 |
描述 |
available |
Boolean |
藍牙模塊是否可用 |
discovering |
Boolean |
藍牙模塊是否處于搜索狀態(tài) |
示例代碼
my.onBluetoothAdapterStateChange({
success: (res) => {
console.log(res);
}
});
my.offBluetoothAdapterStateChange
移除本機藍牙狀態(tài)變化的事件的監(jiān)聽。
示例代碼
my.offBluetoothAdapterStateChange();
錯誤碼
錯誤碼 |
說明 |
10000 |
未初始化藍牙適配器 |
10001 |
當前藍牙適配器不可用 |
10002 |
沒有找到指定設(shè)備 |
10003 |
連接失敗 |
10004 |
沒有找到指定服務 |
10005 |
沒有找到指定特征值 |
10006 |
當前連接已斷開 |
10007 |
當前特征值不支持此操作 |
10008 |
其余所有系統(tǒng)上報的異常 |
10009 |
Android 系統(tǒng)特有,系統(tǒng)版本低于 4.3 不支持BLE |
10010 |
沒有找到指定描述符 |
10011 |
設(shè)備 id 不可用/為空 |
10012 |
服務 id 不可用/為空 |
10013 |
特征 id 不可用/為空 |
10014 |
發(fā)送的數(shù)據(jù)為空或格式錯誤 |
10015 |
操作超時 |
10016 |
缺少參數(shù) |
10017 |
寫入特征值失敗 |
10018 |
讀取特征值失敗10001 |
常見的藍牙調(diào)用流程
常見問題
- 支持版本 android4.3以上支持ble
- ios6以上都支持
- deviceId,android取到的是藍牙的mac地址(11:22:33:44:55:66),ios取到的是UUID(00000000-0000-0000-0000-000000000000這種格式)
- 調(diào)startBluetoothDevicesDiscovery接口搜索不到設(shè)備,請確保設(shè)備發(fā)出了廣播。如果接口中有傳入services,請確保設(shè)備的廣播內(nèi)容中包含了service的UUID
- 連接設(shè)備失敗,請確認傳入的deviceId是否正確,以及設(shè)備發(fā)出的信號是否足夠強,在信號弱的時候可能會出現(xiàn)連接不上的情況
- 寫數(shù)據(jù)失敗,查看傳入的deviceId、serviceId、characteristicId格式是否正確,deviceId是否已連接上(onBLEConnectionStateChanged這個事件中可以監(jiān)聽連接狀態(tài)變化,getConnectedBluetoothDevices這個方法可以拿到),確保是在連接狀態(tài)下調(diào)寫入方法,查看characteristicId是否屬于這個service,以及這個特征值是否支持寫
- 讀數(shù)據(jù)失敗,同上,查看這個特征值是否支持讀
- 收不到數(shù)據(jù)通知,請確認調(diào)了notifyBLECharacteristicValueChange這個方法以及傳入的參數(shù)是否正確,傳入的characteristicId特征值是否支持notify或indicate,以及確認硬件是否發(fā)出了通知。注意調(diào)用notifyBLECharacteristicValueChange方法的以及注冊onBluetoothDeviceFound事件的順序,最好是在連接之后就調(diào)用notifyBLECharacteristicValueChange方法。
更多建議: