我最近正在开发一个BLE应用程序来控制LED灯。我能够从Android 7.1.1(Nougat)连接并发送字符串到BLE设备。我也可以多次连接和断开连接,但是当我从运行Android 6(marshmallow)的设备断开连接时,BLE设备要么正在睡眠,要么没有正确断开连接。 我运行以下代码断开连接: -
private void Disconnect() {
Toast.makeText(mBTLE_Service, "Service Disconnected", Toast.LENGTH_SHORT).show();
mBTLE_Service.disconnect();
mBTLE_Service.close();
finish();
}
我正在从服务运行以下代码以断开连接并关闭。
/**
* Disconnects an existing connection or cancel a pending connection. The disconnection result
* is reported asynchronously through the
* {@code BluetoothGattCallback#onConnectionStateChange(android.bluetooth.BluetoothGatt, int, int)}
* callback.
*/
public void disconnect() {
if (mBluetoothAdapter == null || mBluetoothGatt == null) {
Log.w(TAG, "BluetoothAdapter not initialized");
return;
}
mBluetoothGatt.disconnect();
}
/**
* After using a given BLE device, the app must call this method to ensure resources are
* released properly.
*/
public void close() {
if (mBluetoothGatt == null) {
return;
}
mBluetoothGatt.close();
mBluetoothGatt = null;
}
此外,我的应用程序无法在Android 5以下的任何设备上运行,在Android 5上我能够连接但无法将任何数据发送到BLE设备。我正在使用BM70_BLE设备。 我需要对我的应用进行哪些更改才能为Android 4.4以上的所有设备提供支持?与BLE Scanner一样,它可以连接并向Android 4.4以上的设备发送数据。用于BLE扫描仪的链接https://play.google.com/store/apps/details?id=com.macdom.ble.blescanner&hl=en
感谢任何帮助或支持。谢谢。