当前位置:  开发笔记 > Android > 正文

如何使用GattServer以编程方式清除蓝牙缓存

如何解决《如何使用GattServer以编程方式清除蓝牙缓存》经验,为你挑选了0个好方法。

我对BLE稍微熟悉,我在使用继承的代码时遇到了一些问题.所以应用程序的工作原理如下:

    启用BLE后,应用会扫描设备

    该应用程序显示找到的设备

    用户选择要配对的设备

    该应用程序与设备配对

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

我正在使用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();
}

重新启动手机,关闭蓝牙,然后重新打开,卸载和安装应用程序将无法解决问题.唯一的解决方案是从Android应用程序管理器上的蓝牙共享应用程序中清除缓存.

这篇文章如何在不使用缓存的情况下以编程方式强制在Android上强制蓝牙低能耗服务发现地址来解决类似的问题,但由于我们没有使用BluetoothGatt来连接它,因此没有合适的解决方案.也不会重构整个继承的代码.

我问你是否有办法使用BluetoothGattServer以编程方式清除缓存.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有