android - 为什么在 Android 中将 autoConnect 设置为 true 后,应用程序没有重新连接到 BLE 设备?

标签 android bluetooth-lowenergy

我正在开发 Android 和 BLE。我希望应用在 BLE 设备 断开连接但返回范围内并播放广告后自动重新连接BLE 设备

我使用以下代码连接到 BLE 设备:

public void connect(final String address) {
        // TODO Auto-generated method stub
        Log.w(TAG, "BluetoothLeService Connect function.");
        if(mBluetoothAdapter == null || address == null){
            Log.w(TAG, "BluetoothAdapter not initialized or unspecified address.");
            //return false;
        }

        final BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);
        mBluetoothGatt = device.connectGatt(this, true, mGattCallback);

    }

我已将 AutoConnect 设置为 true ,但是当 BLE 设备断开连接并返回范围内时它没有重新连接。

为什么在 Android 中将 autoConnect 设置为 true 时应用程序没有重新连接到 BLE 设备?

我错过了什么吗?

提前致谢。

最佳答案

当远程设备在范围内时,自动连接参数决定是否主动连接到远程设备(或)而不是被动地扫描并完成连接。

但这并不意味着断开连接几天然后重新出现的外围设备将重新连接。

通常,与设备的第一次连接应该是直接连接(autoConnect 设置为 false),随后与已知设备的连接应该在 autoConnect 参数设置为 true 的情况下调用。

另请注意,自动连接仅在设备仍在广播时有效。如果没有,那么它将不起作用。

我希望您在设备断开连接时手动重新连接。如果万一您确实遵循了这一点,则需要一个标记来确定设备是否在未经用户同意的情况下实际断开连接。

如果为真,则取消绑定(bind)/取消注册您的服务/广播接收器,并使用您之前必须保存的设备地址再次连接。

关于android - 为什么在 Android 中将 autoConnect 设置为 true 后,应用程序没有重新连接到 BLE 设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27017224/

相关文章:

ios - 在 iOS 7.1 中检测附近带有 "iBeacon"的设备存在哪些技术限制?

java - 计算负数减去另一个数字时出现问题

android - 如何获取设备中只有加速度计传感器的RotationMatrix

android - java.lang.NoSuchMethodError : Activity. isDestroyed below Api 17 handle

java - 如何从此类中取出字节值?

ios - 如何在 ios swift 中连接低功耗蓝牙?

android - 为什么 And-engine 在 onResume 重写函数上完全中断?

java - 为什么Android中的MessureSpec常量是-2147483648, 1073741824, 0

c# - 桌面 C# - 引用 Windows.Devices

ios - 带有 VIPER 的 iOS 中的 BLE