2014-12-04 163 views

回答

2

總之,

是的,你可以。您可以通過使用設備的UUID來執行此操作。如果您知道設備的UUID,您可以從報告的UUID中匹配它們,並知道哪個配對設備是什麼。

事情是這樣的:

BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); 

Method getUuidsMethod = BluetoothAdapter.class.getDeclaredMethod("getUuids", null); 

ParcelUuid[] uuids = (ParcelUuid[]) getUuidsMethod.invoke(adapter, null); 

現在簡單地比較檢索的UUID已知UUID設備(在線或包裝盒上的)。

如果他們是匹配的,你就知道它是什麼設備。

注:最常見的UUID(掃描儀,打印機,鼠標),有通用的UUID 0001101-0000-1000-8000-00805F9B34FB

閱讀有關getUUID()方法,paracable方法,Method Java類,並最終Java.util.UUID.

+0

謝謝,我找到了另一種方式去做,但它會有用 – 2014-12-04 22:18:51

+0

你做了什麼? – SeahawksRdaBest 2014-12-04 22:28:11

+1

那麼看,因爲我只是想過濾打印機配對的設備,我使用設備的BluetoothClass,所以然後我過濾與1536(成像)和1280(Peripherical)所有設備getMajorDeviceClass(),所以它解決了我的問題,但感謝您的回答,將幫助我也許以後 – 2014-12-04 22:37:22

3

我有一個想法,它可能會幫助你。

for (BluetoothDevice device : pairedDevices) 
{ 
    String deviceBTMajorClass = getBTMajorDeviceClass(device.getBluetoothClass().getMajorDeviceClass()); 
    if (D) Log.d(TAG, "deviceBTMajorClass"+deviceBTMajorClass); 
    //btArrayAdapter.add(deviceBTName + "\n"+ deviceBTMajorClass); 
    data.add(device.getName() + "\n" + device.getAddress()); 
} 

private String getBTMajorDeviceClass(int major) { 
    switch (major) { 
     case BluetoothClass.Device.Major.AUDIO_VIDEO: 
      return "AUDIO_VIDEO"; 
     case BluetoothClass.Device.Major.COMPUTER: 
      return "COMPUTER"; 
     case BluetoothClass.Device.Major.HEALTH: 
      return "HEALTH"; 
     case BluetoothClass.Device.Major.IMAGING: 
      return "IMAGING"; 
     case BluetoothClass.Device.Major.MISC: 
      return "MISC"; 
     case BluetoothClass.Device.Major.NETWORKING: 
      return "NETWORKING"; 
     case BluetoothClass.Device.Major.PERIPHERAL: 
      return "PERIPHERAL"; 
     case BluetoothClass.Device.Major.PHONE: 
      return "PHONE"; 
     case BluetoothClass.Device.Major.TOY: 
      return "TOY"; 
     case BluetoothClass.Device.Major.UNCATEGORIZED: 
      return "UNCATEGORIZED"; 
     case BluetoothClass.Device.Major.WEARABLE: 
      return "AUDIO_VIDEO";`enter code here` 
     default: 
      return "unknown!"; 
    } 
}