2015-01-13 138 views
-1

在android中,我試圖獲取藍牙配對設備列表,然後檢查是否有耳機麥克風。檢查藍牙設備是否有麥克風Android

是否有可能在android中找到它?

Set pairedDevices = bluetoothAdapter.getBondedDevices();

 for (BluetoothDevice device : pairedDevices) { 

      BluetoothClass bluetoothClass = device.getBluetoothClass(); 



      if (bluetoothClass != null) { 
       int deviceClass = bluetoothClass.getDeviceClass(); 



       if (deviceClass == Device.AUDIO_VIDEO_WEARABLE_HEADSET 
         || deviceClass == Device.AUDIO_VIDEO_CAR_AUDIO 
         || deviceClass == Device.AUDIO_VIDEO_HANDSFREE 
         || deviceClass == Device.AUDIO_VIDEO_UNCATEGORIZED 


         ) { 
          } 
         } 
        } 

如何從設備類知道它是否有能力話筒,或者用戶可以從設備說話,如果返回的設備類Device.AUDIO_VIDEO_WEARABLE_HEADSET?

回答

0

您可以使用檢查藍牙設備的類:

private void getDeviceClass(BluetoothDevice device) { 
    int btClass = device.getBluetoothClass().getDeviceClass(); 
    // check your device class; class constants are listed in the Reference link 
    // AUDIO_VIDEO_MICROPHONE, AUDIO_VIDEO_HANDSFREE, 
    // or even PHONE_* may match your requirements 
} 

參考:BluetoothClass.Device

+0

香港專業教育學院編輯我原來的問題,問題是,在與支持藍牙的Bose音頻揚聲器,設備類返回Device.AUDIO_VIDEO_WEARABLE_HEADSET.But bose音頻揚聲器沒有麥克風功能。 我正在開發一個撥號應用程序,如果設備沒有麥克風功能,則不應該將音頻路由到揚聲器。 –

+0

這個[app](https://play.google.com/store/apps/details?id=com.webalis.bluetoothMicTest&hl=en)會記錄一小段音頻,並檢查音頻是否有音量。也許你可以做類似的邏輯。 – Raptor

+0

不認爲是一個很好的解決方案,在我的撥號應用程序中,當通話連接時,生病需要決定將音頻路由到哪裏,並將頭戴式麥克風輸入或設備麥克風輸入。 在這種情況下,用戶可能不會說話,音頻也不會有任何音量。 確定應該有mi的能力,因爲手機的默認撥號器應用程序會這樣做,當耳機沒有麥克風時,它不會將音頻路由到耳機。 –