android - Android以编程方式关闭蓝牙无法按预期工作
问题描述
我正在研究 Silicon labs MCU + BLE113 和 android app 之间的蓝牙通信。我想以编程方式从 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 仍然显示通过蓝牙与安卓手机连接。我发现断开MCU和android应用程序的方式是1,关闭应用程序,2,在android studio上停止调试模式,或者3,在android手机系统设置中手动禁用蓝牙。
有人可以帮我吗?谢谢你。
解决方案
推荐阅读
- jenkins - 从 Jenkins Pipeline 触发 BitBucket 合并
- mysql - 如何从终端恢复mysql数据库备份?
- c# - c# - 如何在已被覆盖的自定义控件上创建事件和更改属性?
- c# - 数据库端事务拆分与应用程序端事务拆分
- bash - 如何修复此命令菜单
- c# - 如何:TcpClient NetworkStream 生命周期
- javascript - 双击“input[]:focus”上的必要性
- sql - 用以前的 NOT NULL 行更新 NULL 行
- python - ModuleNotFoundError:没有名为“app.wsgi”的模块
- git - git如何自动合并两个分支?