我正在研究Silicon Labs MCU + BLE113与android应用之间的蓝牙通信。我想从Android端以编程方式禁用蓝牙。我发现有一些在线示例对您有所帮助。我的代码如下:
private void showWifiSet() {
runOnUiThread(new Runnable() {
@Override
public void run() {
new MaterialDialog.Builder(SendWifiBLEActivity.this)
.content(R.string.wifi_set)
.positiveText(android.R.string.ok)
.onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
if (bluetoothAdapter.isEnabled()) {
bluetoothAdapter.disable();
}
finish();
}
})
.show();
}
});
}
现在我的问题是,当运行此代码时,显示为在Android手机上禁用了蓝牙,并且捕获了BluetoothAdapter.STATE_OFF。但是我无法在MCU上获得ble_evt_connection_disconnected事件,即Android中的onConnectionStateChange。而且我的MCU仍显示通过android手机通过蓝牙连接。我发现断开MCU与android应用程序的连接的方式是1,关闭应用程序,2,在android studio上停止调试模式或3,在android手机系统设置中手动禁用蓝牙。
有人可以帮我吗?谢谢。