(舊)支付寶小程序API 藍(lán)牙

2018-10-10 11:24 更新

支付寶小程序API藍(lán)牙

my.openBluetoothAdapter

初始化藍(lán)牙適配器。

名稱 類型 必填 描述 success Function 否 調(diào)用成功的回調(diào)函數(shù) fail Function 否 調(diào)用失敗的回調(diào)函數(shù) complete Function 否 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)

success 返回值

名稱 類型 描述
isSupportBLE Boolean 是否支持 BLE

錯(cuò)誤碼描述

error 描述
12 藍(lán)牙未打開
13 與系統(tǒng)服務(wù)的鏈接暫時(shí)丟失
14 未授權(quán)支付寶使用藍(lán)牙功能
15 未知錯(cuò)誤

示例代碼

my.openBluetoothAdapter({
  success: (res) => {
  },
  fail:(res) => {
  },
  complete: (res)=>{
  }
});

my.closeBluetoothAdapter

關(guān)閉本機(jī)藍(lá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)用成功、失敗都會(huì)執(zhí)行)

錯(cuò)誤碼描述

error 描述
12 藍(lán)牙關(guān)閉失敗

示例代碼

my.closeBluetoothAdapter({
  success: (res) => {
  },
  fail:(res) => {
  },
  complete: (res)=>{
  }
});

my.getBluetoothAdapterState

獲取本機(jī)藍(lá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)用成功、失敗都會(huì)執(zhí)行)

success 返回值

名稱 類型 描述
discovering Boolean 是否正在搜索設(shè)備
available Boolean 藍(lán)牙模塊是否可用(需支持 BLE 并且藍(lán)牙是打開狀態(tài))

錯(cuò)誤碼描述

error 描述
12 獲取失敗

示例代碼

my.getBluetoothAdapterState({
  success: (res) => {
    console.log(res)
  },
  fail:(res) => {
  },
  complete: (res)=>{
  }
});

my.startBluetoothDevicesDiscovery

開始搜尋附近的藍(lán)牙外圍設(shè)備。搜索結(jié)果將在 onBluetoothDeviceFound 事件中返回。

入?yún)?/a>

名稱 類型 必填 描述
services Array 藍(lán)牙設(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)用成功、失敗都會(huì)執(zhí)行)

錯(cuò)誤碼描述

error 描述
12 開始搜索失敗

示例代碼

my.startBluetoothDevicesDiscovery({
  services: ['fff0'],
  success: (res) => {
    console.log(res)
  },
  fail:(res) => {
  },
  complete: (res)=>{
  }
});

my.stopBluetoothDevicesDiscovery

停止搜尋附近的藍(lá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)用成功、失敗都會(huì)執(zhí)行)

錯(cuò)誤碼描述

error 描述
12 停止搜索失敗

示例代碼

my.stopBluetoothDevicesDiscovery({
  success: (res) => {
    console.log(res)
  },
  fail:(res) => {
  },
  complete: (res)=>{
  }
});

my.getBluetoothDevices

獲取所有已發(fā)現(xiàn)的藍(lán)牙設(shè)備,包括已經(jīng)和本機(jī)處于連接狀態(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)用成功、失敗都會(huì)執(zhí)行)

success 返回值

名稱 類型 描述
devices Array 已發(fā)現(xiàn)的設(shè)備列表

device對象

名稱 類型 描述
name String 藍(lán)牙設(shè)備名稱,某些設(shè)備可能沒有
deviceName(兼容舊版本) String 值與 name 一致
localName String 廣播設(shè)備名稱
deviceId String 設(shè)備 Id
RSSI Number 設(shè)備信號強(qiáng)度
advertisData Hex String 設(shè)備的廣播內(nèi)容
manufacturerData Hex String 設(shè)備的manufacturerData

錯(cuò)誤碼描述

error 描述
12 獲取失敗

示例代碼

my.getBluetoothDevices({
  success: (res) => {
    console.log(res)
  },
  fail:(res) => {
  },
  complete: (res)=>{
  }
});

my.getConnectedBluetoothDevices

獲取處于已連接狀態(tài)的設(shè)備。

入?yún)?/a>

名稱 類型 必填 描述
services Array 藍(lán)牙設(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)用成功、失敗都會(huì)執(zhí)行)

success 返回值

名稱 類型 描述
devices Array 已連接的設(shè)備列表

device對象

名稱 類型 描述
name String 藍(lán)牙設(shè)備名稱,某些設(shè)備可能沒有
deviceName(兼容舊版本) String 值與 name 一致
localName String 廣播設(shè)備名稱
deviceId String 設(shè)備 Id
RSSI Number 設(shè)備信號強(qiáng)度
advertisData Hex String 設(shè)備的廣播內(nèi)容
manufacturerData Hex String 設(shè)備的manufacturerData

錯(cuò)誤碼描述

error 描述
12 獲取失敗

示例代碼

my.getConnectedBluetoothDevices({
  success: (res) => {
    console.log(res)
  },
  fail:(res) => {
  },
  complete: (res)=>{
  }
});

my.connectBLEDevice

連接低功耗藍(lán)牙設(shè)備。

入?yún)?/a>

名稱 類型 必填 描述
deviceId String 藍(lán)牙設(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)用成功、失敗都會(huì)執(zhí)行)

錯(cuò)誤碼描述

error 描述
12 連接失敗

示例代碼

my.connectBLEDevice({
  // 這里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中獲取
  deviceId: deviceId,
  success: (res) => {
    console.log(res)
  },
  fail:(res) => {
  },
  complete: (res)=>{
  }
});

my.disconnectBLEDevice

斷開與低功耗藍(lán)牙設(shè)備的連接。

入?yún)?/a>

名稱 類型 必填 描述
deviceId String 藍(lán)牙設(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)用成功、失敗都會(huì)執(zhí)行)

錯(cuò)誤碼描述

error 描述
12 斷開失敗

示例代碼

my.disconnectBLEDevice({
  deviceId: deviceId,
  success: (res) => {
    console.log(res)
  },
  fail:(res) => {
  },
  complete: (res)=>{
  }
});

my.writeBLECharacteristicValue

向低功耗藍(lán)牙設(shè)備特征值中寫入數(shù)據(jù)。

入?yún)?/a>

名稱 類型 必填 描述
deviceId String 藍(lán)牙設(shè)備 id,參考 device 對象
serviceId String 藍(lán)牙特征值對應(yīng) service 的 uuid
characteristicId String 藍(lán)牙特征值的 uuid
value Hex String 藍(lán)牙設(shè)備特征值對應(yīng)的值,16進(jìn)制字符串
success Function 調(diào)用成功的回調(diào)函數(shù)
fail Function 調(diào)用失敗的回調(diào)函數(shù)
complete Function 調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)

錯(cuò)誤碼描述

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

讀取低功耗藍(lán)牙設(shè)備特征值中的數(shù)據(jù)。調(diào)用后在my.onBLECharacteristicValueChange() 事件中接收數(shù)據(jù)返回。

入?yún)?/a>

名稱 類型 必填 描述
deviceId String 藍(lán)牙設(shè)備 id,參考 device 對象
serviceId String 藍(lán)牙特征值對應(yīng) service 的 uuid
characteristicId String 藍(lán)牙特征值的 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)用成功、失敗都會(huì)執(zhí)行)

success 返回值

名稱 類型 描述
characteristic Object 設(shè)備特征值信息

characteristic對象

藍(lán)牙設(shè)備characteristic(特征值)信息

名稱 類型 描述
characteristicId String 藍(lán)牙設(shè)備特征值的 uuid
serviceId String 藍(lán)牙設(shè)備特征值對應(yīng)服務(wù)的 uuid
value Hex String 藍(lán)牙設(shè)備特征值的value

錯(cuò)誤碼描述

error 描述
12 讀取數(shù)據(jù)失敗

示例代碼

my.readBLECharacteristicValue({
  deviceId: deviceId,
  serviceId: serviceId,
  characteristicId: characteristicId,
  success: (res) => {
    console.log(res)
  },
  fail:(res) => {
  },
  complete: (res)=>{
  }
});

my.notifyBLECharacteristicValueChange

啟用低功耗藍(lán)牙設(shè)備特征值變化時(shí)的 notify 功能。注意:必須設(shè)備的特征值支持notify才可以成功調(diào)用,具體參照 characteristic 的 properties 屬性 另外,必須先啟用notify才能監(jiān)聽到設(shè)備 characteristicValueChange 事件。

入?yún)?/a>

名稱 類型 必填 描述
deviceId String 藍(lán)牙設(shè)備 id,參考 device 對象
serviceId String 藍(lán)牙特征值對應(yīng) service 的 uuid
characteristicId String 藍(lán)牙特征值的 uuid
descriptorId String notify 的 descriptor 的 uuid (只有android 會(huì)用到,非必填,默認(rèn)值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)用成功、失敗都會(huì)執(zhí)行)

錯(cuò)誤碼描述

error 描述
12 啟動(dòng)失敗

示例代碼

my.notifyBLECharacteristicValueChange({
  deviceId: deviceId,
  serviceId: serviceId,
  characteristicId: characteristicId,
  success: (res) => {
    console.log(res)
  },
  fail:(res) => {
  },
  complete: (res)=>{
  }
});

my.getBLEDeviceServices

獲取藍(lán)牙設(shè)備所有 service(服務(wù))

入?yún)?/a>

名稱 類型 必填 描述
deviceId String 藍(lán)牙設(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)用成功、失敗都會(huì)執(zhí)行)

success 返回值

名稱 類型 描述
services Array 設(shè)備service 對象列表,詳見下表特征值信息

service對象

藍(lán)牙設(shè)備service(服務(wù))信息

名稱 類型 描述
serviceId String 藍(lán)牙設(shè)備服務(wù)的 uuid
isPrimary Boolean 該服務(wù)是否為主服務(wù)

錯(cuò)誤碼描述

error 描述
12 獲取失敗

示例代碼

my.getBLEDeviceServices({
  deviceId: deviceId,
  success: (res) => {
    console.log(res)
  },
  fail:(res) => {
  },
  complete: (res)=>{
  }
});

my.getBLEDeviceCharacteristics

獲取藍(lán)牙設(shè)備所有 characteristic(特征值)

入?yún)?/a>

名稱 類型 必填 描述
deviceId String 藍(lán)牙設(shè)備 id,參考 device 對象
serviceId String 藍(lán)牙特征值對應(yīng) 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)用成功、失敗都會(huì)執(zhí)行)

success 返回值

名稱 類型 描述
characteristics Array 設(shè)備特征值列

characteristic對象

藍(lán)牙設(shè)備 characteristic (特征值)信息

名稱 類型 描述
characteristicId String 藍(lán)牙設(shè)備特征值的 uuid
serviceId String 藍(lán)牙設(shè)備特征值對應(yīng)服務(wù)的 uuid
value Hex String 藍(lán)牙設(shè)備特征值對應(yīng)的16進(jìn)制值
properties Object 該特征值支持的操作類型

properties 對象

名稱 類型 描述
read boolean 該特征值是否支持 read 操作
write boolean 該特征值是否支持 write 操作
notify boolean 該特征值是否支持 notify 操作
indicate boolean 該特征值是否支持 indicate 操作

錯(cuò)誤碼描述

error 描述
12 獲取失敗

示例代碼

my.getBLEDeviceCharacteristics({
  deviceId: deviceId,
  serviceId: serviceId,
  success: (res) => {
    console.log(res)
  },
  fail:(res) => {
  },
  complete: (res)=>{
  }
});

my.onBluetoothDeviceFound

尋找到新的藍(lán)牙設(shè)備時(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)用成功、失敗都會(huì)執(zhí)行)

success 返回值

名稱 類型 描述
devices Array 新搜索到的設(shè)備列表

device對象

名稱 類型 描述
name String 藍(lán)牙設(shè)備名稱,某些設(shè)備可能沒有
deviceName(兼容舊版本) String 值與 name 一致
localName String 廣播設(shè)備名稱
deviceId String 設(shè)備 Id
RSSI Number 設(shè)備信號強(qiáng)度
advertisData Hex String 設(shè)備的廣播內(nèi)容

示例代碼

my.onBluetoothDeviceFound({
  success: (res) => {
    console.log(res);
  }
});

my.offBluetoothDeviceFound

移除尋找到新的藍(lán)牙設(shè)備事件的監(jiān)聽。

示例代碼

my.offBluetoothDeviceFound();

my.onBLECharacteristicValueChange

監(jiān)聽低功耗藍(lá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)用成功、失敗都會(huì)執(zhí)行)

success 返回值

名稱 類型 描述
deviceId String 藍(lán)牙設(shè)備 id,參考 device 對象
serviceId String 藍(lán)牙特征值對應(yīng) service 的 uuid
characteristicId String 藍(lán)牙特征值的 uuid
value Hex String 特征值最新的16進(jìn)制值

示例代碼

my.onBLECharacteristicValueChange({
  success: (res) => {
    console.log(res);
  }
});

my.offBLECharacteristicValueChange

移除低功耗藍(lán)牙設(shè)備的特征值變化事件的監(jiān)聽。

示例代碼

my.offBLECharacteristicValueChange();

my.onBLEConnectionStateChanged

監(jiān)聽低功耗藍(lán)牙連接的錯(cuò)誤事件,包括設(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)用成功、失敗都會(huì)執(zhí)行)

success 返回值

名稱 類型 描述
deviceId String 藍(lán)牙設(shè)備 id,參考 device 對象
connected Boolean 連接目前的狀態(tài)

示例代碼

my.onBLEConnectionStateChanged({
  success: (res) => {
    console.log(res);
  }
});

my.offBLEConnectionStateChanged

移除低功耗藍(lán)牙連接的錯(cuò)誤事件的監(jiān)聽。

示例代碼

my.offBLEConnectionStateChanged();

my.onBluetoothAdapterStateChange

監(jiān)聽本機(jī)藍(lá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)用成功、失敗都會(huì)執(zhí)行)

success 返回值

名稱 類型 描述
available Boolean 藍(lán)牙模塊是否可用
discovering Boolean 藍(lán)牙模塊是否處于搜索狀態(tài)

示例代碼

my.onBluetoothAdapterStateChange({
  success: (res) => {
    console.log(res);
  }
});

my.offBluetoothAdapterStateChange

移除本機(jī)藍(lán)牙狀態(tài)變化的事件的監(jiān)聽。

示例代碼

my.offBluetoothAdapterStateChange();

錯(cuò)誤碼

錯(cuò)誤碼 說明
10000 未初始化藍(lán)牙適配器
10001 當(dāng)前藍(lán)牙適配器不可用
10002 沒有找到指定設(shè)備
10003 連接失敗
10004 沒有找到指定服務(wù)
10005 沒有找到指定特征值
10006 當(dāng)前連接已斷開
10007 當(dāng)前特征值不支持此操作
10008 其余所有系統(tǒng)上報(bào)的異常
10009 Android 系統(tǒng)特有,系統(tǒng)版本低于 4.3 不支持BLE
10010 沒有找到指定描述符
10011 設(shè)備 id 不可用/為空
10012 服務(wù) id 不可用/為空
10013 特征 id 不可用/為空
10014 發(fā)送的數(shù)據(jù)為空或格式錯(cuò)誤
10015 操作超時(shí)
10016 缺少參數(shù)
10017 寫入特征值失敗
10018 讀取特征值失敗10001

常見的藍(lán)牙調(diào)用流程

常見的支付寶小程序藍(lán)牙調(diào)用流程

常見問題

  1. 支持版本 android4.3以上支持ble
  2. ios6以上都支持
  3. deviceId,android取到的是藍(lán)牙的mac地址(11:22:33:44:55:66),ios取到的是UUID(00000000-0000-0000-0000-000000000000這種格式)
  4. 調(diào)startBluetoothDevicesDiscovery接口搜索不到設(shè)備,請確保設(shè)備發(fā)出了廣播。如果接口中有傳入services,請確保設(shè)備的廣播內(nèi)容中包含了service的UUID
  5. 連接設(shè)備失敗,請確認(rèn)傳入的deviceId是否正確,以及設(shè)備發(fā)出的信號是否足夠強(qiáng),在信號弱的時(shí)候可能會(huì)出現(xiàn)連接不上的情況
  6. 寫數(shù)據(jù)失敗,查看傳入的deviceId、serviceId、characteristicId格式是否正確,deviceId是否已連接上(onBLEConnectionStateChanged這個(gè)事件中可以監(jiān)聽連接狀態(tài)變化,getConnectedBluetoothDevices這個(gè)方法可以拿到),確保是在連接狀態(tài)下調(diào)寫入方法,查看characteristicId是否屬于這個(gè)service,以及這個(gè)特征值是否支持寫
  7. 讀數(shù)據(jù)失敗,同上,查看這個(gè)特征值是否支持讀
  8. 收不到數(shù)據(jù)通知,請確認(rèn)調(diào)了notifyBLECharacteristicValueChange這個(gè)方法以及傳入的參數(shù)是否正確,傳入的characteristicId特征值是否支持notify或indicate,以及確認(rèn)硬件是否發(fā)出了通知。注意調(diào)用notifyBLECharacteristicValueChange方法的以及注冊onBluetoothDeviceFound事件的順序,最好是在連接之后就調(diào)用notifyBLECharacteristicValueChange方法。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號