2012-03-19 109 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()

獲取本地藍牙適配器的當前藍牙掃描模式。

藍牙掃描模式確定本地適配器是否可連接 和/或可從遠程藍牙設備發現。