我试图在单击按钮时禁用蓝牙,但它不起作用
听我做什么
if (SDK_INT >= Build.VERSION_CODES.S) {
if (checkPermission(Manifest.permission.BLUETOOTH_CONNECT) && checkPermission(Manifest.permission.BLUETOOTH_SCAN)) {
BluetoothAdapter adapter = ((BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE)).getAdapter();
if (adapter != null) {
if (adapter.getState() == BluetoothAdapter.STATE_ON) {
Log.e("BT", "disable");
adapter.disable();
} else if (adapter.getState() == BluetoothAdapter.STATE_OFF) {
if (!adapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
Log.e("BT", "enable");
} else {
Log.e("BT", "Else");
}
} else {
Toast.makeText(UltimateHomeLauncherActivity.this, "Bluetooth is not supported on your hardware", Toast.LENGTH_SHORT).show();
}
} else {
List<String> deniedPermissions = new ArrayList<>();
deniedPermissions.add(Manifest.permission.BLUETOOTH_CONNECT);
deniedPermissions.add(Manifest.permission.BLUETOOTH_SCAN);
requestRuntimePermissions(1011, deniedPermissions.toArray(new String[0]));
}
}
我还在清单中添加了蓝牙权限。
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
Android 中有两种打开/关闭蓝牙的方法
BluetoothAdapter.enable()
打开蓝牙
BluetoothAdapter.disable()
关闭蓝牙
这些方法是异步的,并且仅在 API 级别 33 以下工作
或使用
{ Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(intent, REQUEST_ENABLE_BT); }
打开蓝牙
{ Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISABLE); startActivityForResult(intent, REQUEST_DISABLE_BT); }
关闭蓝牙
执行后,系统对话框将提示用户打开/关闭蓝牙。
一旦打开/关闭 onActivityResult() 覆盖方法将被触发。
就您而言,您正在使用
BluetoothAdapter.disable()
尝试使用其他方法。
注意:常量BluetoothAdapter.ACTION_REQUEST_DISABLE在SDK中使用@hide进行hidden,其值为“android.bluetooth.adapter.action.REQUEST_DISABLE”。您可以直接使用“android.bluetooth.adapter.action.REQUEST_DISABLE”而不是BluetoothAdapter.ACTION_REQUEST_DISABLE。