不使用 createBond() 绑定 BLE 设备
Bond a BLE device without createBond()
我正在创建一个 Android 应用程序 - 此应用程序的一个功能是,如果用户连接到 BLE 设备并单击按钮,该应用程序将记住该设备并在以后自动连接。据我了解,这意味着我需要结合。
我遇到了 createBond()
方法,但意识到它只能在 API 19 (Android 4.4) 及以后的版本中使用。我为之做这个的人更希望它在 API 18 (Android 4.3) 中可用,因为该产品已经这样宣传过。
假设我的方法是正确的(意思是,通过积极使用绑定 - 我正在自学蓝牙,所以如果这不是正确的方法或者我有误解,请纠正我),有什么方法可以在没有 createBond()
的情况下实现我想要的目标?如果是这样,如何?或者 API19 是我们必须忍受的东西吗?
一种选择是将首选项与您的设备扫描回调结合使用。
假设您在应用中的某处使用 LeScanCallback
:
BluetoothAdapter.LeScanCallback mCallBack =
new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) {
// You can place this elsewhere so this isn't called for every device
String storedAddr = myContext.getSharedPreferences("global", Context.MODE_PRIVATE).getString("storedAddr","");
if(storedAddr.equals("")) {
// Do your normal process to list / connect to devices.
// Store device.getAddress() in preferences once connected.
} else if(device.getAddress().equals(storedAddr) {
// Do whatever you want with the matching device
}
}
}
当然,您必须处理删除该存储地址的选项,以便他们可以在需要时选择新设备进行保存。
我正在创建一个 Android 应用程序 - 此应用程序的一个功能是,如果用户连接到 BLE 设备并单击按钮,该应用程序将记住该设备并在以后自动连接。据我了解,这意味着我需要结合。
我遇到了 createBond()
方法,但意识到它只能在 API 19 (Android 4.4) 及以后的版本中使用。我为之做这个的人更希望它在 API 18 (Android 4.3) 中可用,因为该产品已经这样宣传过。
假设我的方法是正确的(意思是,通过积极使用绑定 - 我正在自学蓝牙,所以如果这不是正确的方法或者我有误解,请纠正我),有什么方法可以在没有 createBond()
的情况下实现我想要的目标?如果是这样,如何?或者 API19 是我们必须忍受的东西吗?
一种选择是将首选项与您的设备扫描回调结合使用。
假设您在应用中的某处使用 LeScanCallback
:
BluetoothAdapter.LeScanCallback mCallBack =
new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) {
// You can place this elsewhere so this isn't called for every device
String storedAddr = myContext.getSharedPreferences("global", Context.MODE_PRIVATE).getString("storedAddr","");
if(storedAddr.equals("")) {
// Do your normal process to list / connect to devices.
// Store device.getAddress() in preferences once connected.
} else if(device.getAddress().equals(storedAddr) {
// Do whatever you want with the matching device
}
}
}
当然,您必须处理删除该存储地址的选项,以便他们可以在需要时选择新设备进行保存。