我正在尝试从我的代码中禁用蓝牙,但它仍保持启用状态且不会引发任何错误。 这是我的代码。
if (m_BluetoothAdapter.isEnabled()){
m_BluetoothAdapter.disable();
}
if (m_BluetoothAdapter.isEnabled() == false){
Toast.makeText(getApplicationContext(), "BLUETOOTH is being disabled", Toast.LENGTH_SHORT).show();
}
这是我的应用中唯一可用于测试的代码。 我还允许蓝牙和Bluetooth_admin。 Eclipse和mobile都没有出现任何错误,但BT仍然启用。 我指出我做错了什么 此致
更新:
好吧,我发现如果我第一次运行这个应用程序,BT仍然启用
但如果我再次运行app(第二次),则BT被禁用
我不确定为什么BT仅在第二次运行时被禁用,而不是第一次。
有任何想法吗?
答案 0 :(得分:1)
您应该知道disable()
方法进行异步调用,因此您的代码似乎无效。
换句话说,蓝牙将被禁用需要一些时间。在这种情况下,您应该将BroadcastReceiver与 BluetoothAdapter.ACTION_STATE_CHANGED
intent-filter一起使用,并监听状态更改,然后执行适当的操作。
可用状态 STATE_ON
STATE_TURNING_OFF
和 STATE_OFF
另外看看文档:
表示适配器关闭已开始,或者立即为假 错误
答案 1 :(得分:0)
使用this库,它易于使用且更友好 也尝试下面的代码
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter.isEnabled()) {
mBluetoothAdapter.disable();
}