Android BluetoothLE断开连接问题

时间:2016-08-05 05:07:44

标签: performance bluetooth-lowenergy android-bluetooth

我正在重建一个可以与蓝牙设备通信的应用程序。

我发现的代码在关闭连接后调用了这个奇怪的方法,

bluetoothGatt.disconnect();

将调用onStateChangeCallback。

方法就是这样;

 private void refreshDeviceCache(final BluetoothGatt gatt) {
    int cnt = 0;

    boolean success = false;

    try {
        if (gatt != null) {
            final Method refresh = gatt.getClass().getMethod("refresh");
            if (refresh != null) {
                success = (Boolean) refresh.invoke(gatt);

                while (!success && cnt < 100) {
                    success = (Boolean) refresh.invoke(gatt);
                    cnt++;
                }
                Log.e(TAG, "retry refresh : " + cnt + "   " + success);
            }
        }
    } catch (Exception e) {
        Log.e(TAG, "5", e);
    }
}

我无法完全理解这段代码会做什么,但最后,它会在断开连接后减慢连接。它不会减慢断开连接速度。

我真的无法理解这一点,因为在我获得BluetoothProfile.STATE_DISCONNECTED之后,我将关闭bluetoothGatt,并在broadCastReceiver上取消绑定服务并关闭服务本身。

在连接阶段,将重新创建服务。

断开连接时该代码的哪一行可能会减慢连接速度?请帮帮我。

0 个答案:

没有答案