蓝牙未禁用

时间:2013-10-24 11:44:20

标签: android bluetooth

我正在尝试从我的代码中禁用蓝牙,但它仍保持启用状态且不会引发任何错误。 这是我的代码。

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仅在第二次运行时被禁用,而不是第一次。 有任何想法吗?

2 个答案:

答案 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(); 
}