gpt4 book ai didi

android - 设备关闭时 Oneplus 中的蓝牙 Gatt 连接问题

转载 作者:行者123 更新时间:2023-11-29 18:34:15 30 4
gpt4 key购买 nike

我只在我的 Oneplus 设备上遇到问题,而 Pixel 和 Nokia 运行得很好。

这是我的问题。我有 BLE 设备并使用以下代码通过我的应用程序连接到它。

public boolean connect(final String address) {

if (mBluetoothAdapter == null || address == null) {
Log.e(TAG, "BluetoothAdapter not initialized or unspecified address.");
return false;
}

String mBluetoothDeviceAddress = Util.getDeviceAddress(this);

// Previously connected device. Try to reconnect.
if (mBluetoothGatt != null && Util.isBLEDeviceConnected(this, mBluetoothDeviceAddress)) {
Log.d(TAG, "Already connected");

broadcastUpdate(ACTION_GATT_CONNECTED, mBluetoothDeviceAddress);
return true;
} else if (mBluetoothGatt != null) {
Log.d(TAG, "GATT Connection is Required");

mBluetoothGatt.connect();
return true;
}

if (!mIsConnecting) {
final BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);
if (device == null) {
Log.w(TAG, "Device not found. Unable to connect.");
return false;
}
// We want to auto connect to the device, so we are setting the autoConnect
// parameter to true.
Log.d(TAG, "Trying to create a new connection.");
mBluetoothGatt = device.connectGatt(this, true, mGattCallback);
mIsConnecting = true;
} else {
Log.d(TAG, "Already connection is in progress");
}

return true;
}

@Override
public void onDestroy() {
super.onDestroy();
disconnect();
close();
unregisterReceiver(bluetoothReceiver);
unregisterReceiver(mGattDisconnectReceiver);

}

public void disconnect() {
Log.d(TAG, "Disconnecting Gatt " + mBluetoothGatt);

if (mBluetoothGatt == null) {
Log.w(TAG, "BluetoothGatt not initialized");
return;
}
mBluetoothGatt.disconnect();
mIsConnecting = false;
}

public void close() {
Log.d(TAG, "Closing Gatt " + mBluetoothGatt);

if (mBluetoothGatt == null) {
Log.w(TAG, "BluetoothGatt not initialized");
return;
}
mBluetoothGatt.close();
mIsConnecting = false;
mBluetoothGatt = null;
}

配对工作正常,直到我关闭/关闭我的手机。如果我下次尝试配对/连接时重启手机,它将无法正常工作。它根据我的代码显示“正在尝试创建新连接”,并在下面作为附加日志显示。

2019-03-01 09:01:08.083 9983-9983/com.wrkspot.employee.dev D/BLEService: Trying to create a new connection.
2019-03-01 09:01:08.084 9983-9983/com.wrkspot.employee.dev D/BluetoothGatt: connect() - device: C1:B4:70:12:4B:23, auto: true
2019-03-01 09:01:08.084 9983-9983/com.wrkspot.employee.dev D/BluetoothGatt: registerApp()
2019-03-01 09:01:08.085 9983-9983/com.wrkspot.employee.dev D/BluetoothGatt: registerApp() - UUID=a18ee742-4543-473c-8789-37a22845a96c
2019-03-01 09:01:08.087 9983-10064/com.wrkspot.employee.dev D/BluetoothGatt: onClientRegistered() - status=0 clientIf=8

我被卡住了,我真的需要一些建议。这个问题只发生在我的 Oneplus 3T 上,在我测试过的其他几部手机上都可以正常工作。

出现此问题时,我必须重新安装应用程序并重启手机。只有这样我才能再次配对/连接。

最佳答案

只有当 Android 的缓存中有设备或设备已绑定(bind)时,值为 true 的自动连接才有效。当您重新启动手机时,缓存将被清除。所以你必须再次扫描....

关于android - 设备关闭时 Oneplus 中的蓝牙 Gatt 连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54937556/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com