如何以编程方式清除使用GattServer的蓝牙caching

我对BLE略微熟悉,而且我正面临一些inheritance代码的问题。 所以这个应用程序是这样的:

  1. 启用BLE后,应用程序将扫描设备
  2. 该应用程序显示find的设备
  3. 用户select要配对的设备
  4. 应用程序与设备配对

我面对的问题是,经过几次配对(它变化)手机无法发现设备,因此阻止用户配对。

我正在使用GattServer来连接客户端设备,我正在重新设置服务如下:

public void resetBluetoothGattServer() { Log.i(TAG," resetBluetoothGattServer: bluetoothGattServer: "+ bluetoothGattServer); if (bluetoothGattServer != null) { if(!bluetoothGattServer.getServices().isEmpty()){ Log.i(TAG," resetBluetoothGattServer: clearing services on bluetooth Gatt Server"); bluetoothGattServer.clearServices(); } Log.i(TAG," resetBluetoothGattServer: closing bluetoothGattServer"); bluetoothGattServer.close(); } bluetoothGattServer = openGattServer(); } 

重新启动手机,closures蓝牙,然后重新打开,卸载并安装应用程序将无法解决问题。 唯一的解决scheme是清除Android应用程序pipe理器上的蓝牙共享应用程序的caching

这篇文章如何以编程方式强制在Android上的蓝牙低功耗服务发现,而不使用caching地址到类似的问题,但由于我们没有使用蓝牙连接它不是一个合适的解决scheme。 也不会重构整个inheritance的代码。

我问你是否有一种方法来清除使用BluetoothGattServer编程的caching。

Solutions Collecting From Web of "如何以编程方式清除使用GattServer的蓝牙caching"