0

我正在尝试从我的代码中禁用蓝牙,但它仍然处于启用状态并且没有引发错误。这是我的代码。

if (m_BluetoothAdapter.isEnabled()){
    m_BluetoothAdapter.disable();
}
if (m_BluetoothAdapter.isEnabled() == false){
    Toast.makeText(getApplicationContext(), "BLUETOOTH is being disabled", Toast.LENGTH_SHORT).show();
}

这是我的应用程序中唯一用于测试的代码。我还允许蓝牙和蓝牙管理员。Eclipse 和 mobile 都没有给出任何错误,但 BT 仍然启用。请指出我做错了什么。
问候

更新:
嗯,我发现如果我第一次运行这个应用程序,BT 仍然是启用的。
但如果我再次运行应用程序(第二次),BT 将被禁用。
我不确定为什么 BT 只在第二次运行而不是第一次被禁用。有任何想法吗?

4

2 回答 2

1

您应该知道该disable()方法进行了异步调用,因此您的代码似乎无法正常工作。

换句话说,禁用蓝牙需要一些时间。在这种情况下,您应该使用带有BluetoothAdapter.ACTION_STATE_CHANGED意图过滤器的 BroadcastReceiver 并监听状态变化,然后采取适当的行动。

可用状态和STATE_ON STATE_TURNING_OFFSTATE_OFF

另请查看文档中的内容:

true 表示适配器已开始关闭,或 false 表示立即出错

于 2013-10-24T12:00:29.657 回答
0

使用这个库,它易于使用且更友好也可以尝试下面的代码

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();    
if (mBluetoothAdapter.isEnabled()) {
mBluetoothAdapter.disable(); 
} 
于 2013-10-24T12:08:06.077 回答