2016-07-14 122 views
1

我試圖查看是否除了Bluetooth之外,與任何設備配對。 要看到,如果Bluetooth是,我使用以下命令:檢查藍牙配對

BluetoothAdapter.getDefaultAdapter().isEnabled() 

我需要知道如果BluetoothAdapter,與任何設備配對。

謝謝你,我希望你的答案

編輯

如果我使用:

BluetoothAdapter.getDefaultAdapter().getBondedDevices(); 

和大小()> 0,這是否意味着配對?或者已經存儲設備?

編輯

對不起,但我需要的是不要讓配對的設備列表中,但如果一些已經在某些時候配對的設備連接到我的智能手機

回答

1

可以使用查詢配對設備這樣的:

Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices(); 
// If there are paired devices 
if (pairedDevices.size() > 0) { 
    // Loop through paired devices 
    for (BluetoothDevice device : pairedDevices) { 
     // Add the name and address to an array adapter to show in a ListView 
     mArrayAdapter.add(device.getName() + "\n" + device.getAddress()); 
    } 
} 

之前進行設備發現,它的價值查詢組配對的設備,看是否期望的設備是已知的。爲此,請調用getBondedDevices()。這將返回代表配對設備的一組Bluetooth設備。例如,您可以查詢所有配對的設備,然後使用ArrayAdapter向用戶顯示每個設備的名稱。

作爲官方文檔描述here和簡單的藍牙聊天應用程序的好樣品here

+0

是的,那是看,但如果當你調用'getBondedDevices()'函數返回你是什麼,你已經配對的設備/保存,或者連接是否建立。 也許你需要的不是這個匹配,而是如果移動「藍牙」開啓並連接到另一個設備 –

+1

這隻會返回設備上保存的配對設備列表,以便在嘗試發送某些數據之前與之配對。您允許他們與您通信,您不必再次發現它們,並且再次配對,因爲您已經這樣做了,通過此代碼,您可以獲得有關這些設備的所有必要數據,以便再次與它們通信(例如MAC地址)。 – Tinko

+1

您通過此代碼獲得的配對設備不必靠近您,或者他們可以禁用其藍牙,因此此通話不會讓您在您附近啓用已配對的設備,「等待」您連接到它們。它只會返回您之前通信的設備列表。 – Tinko

1

獲取已經配對的設備列表使用此:

Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices(); 
     if (pairedDevices == null || pairedDevices.size() == 0) { 
      Toast.makeText(getApplicationContext(),"No Paired Devices Found",Toast.LENGTH_SHORT).show(); 
     } else { 
      ArrayList<BluetoothDevice> list = new ArrayList<BluetoothDevice>(); 
      list.addAll(pairedDevices);   
     } 
+0

好的,但有了那些返回我的getBondedDevices()函數的設備列表,我得到的設備列表已經在某些時候已經配對了嗎? 我需要知道的是,我在列表中獲得的任何這些設備是否連接到我的智能手機 –

+0

好酷,一旦我們配對,然後我們知道設備名稱和mac地址,使用該mack地址與藍牙套接字連接其他device.Kindly引用此鏈接,你會得到一些想法https://androidcookbook.com/Recipe.seam;jsessionid=9B476BA317AA36E2CB0D6517ABE60A5E?recipeId=1665 –

+0

好的,謝謝@HariHaran,但我想要的是檢查是否有連接智能手機和藍牙設備,請勿在兩臺設備之間建立連接 –