2012-03-19 121 views
2

我想检测蓝牙发现是否开启? 有可能吗?检测到蓝牙发现已打开?

Intent discoverableIntent = new 
Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); 
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 1); 
startActivity(discoverableIntent); 

上面的代码是关于启用/ diabling blutooth盘的状态,但不显示蓝牙状态迪斯科

+0

当你说“蓝牙发现是否开启?”时,你的意思是你的设备是否是可发现的,或者它是否在发现过程中,即发现其他设备? – mfrankli 2012-03-19 17:35:42

回答

0
bluetoothAdapter.isDiscovering(); 

应该做你要找的内容。您可以通过获取默认BluetoothAdapter对象:

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 

你可以阅读有关的都在Android BluetoothAdapter doc这些方法。

+0

它在bluetoothAdapter.isDiscovering()上返回错误; – Ata 2012-03-19 14:44:04

+0

没有看到错误消息,我不能确定,但​​我的猜测是,您需要确保bluetoothAdapter.isEnabled()为真 - 也包含在该文档中。你能发布错误吗? – mfrankli 2012-03-19 15:33:04

4

要了解蓝牙设备是可发现(在查询扫描状态),使用getScanMode(),如下所示:

BluetoothAdapter bAdapter = BluetoothAdapter.getDefaultAdapter(); 
if(bAdapter.getScanMode() == BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) { 
    // device is discoverable & connectable 
} else { 
    // device is not discoverable & connectable 
} 

Documentation of getScanMode()

INT android.bluetooth。 BluetoothAdapter.getScanMode()

获取本地蓝牙适配器的当前蓝牙扫描模式。

蓝牙扫描模式确定本地适配器是否可连接 和/或可从远程蓝牙设备发现。