2015-06-24 214 views
0

我正在嘗試構建一個應用程序,該應用程序可以發現運行相同應用程序的所有設備。 我已經完成了所有的發現等,但我不知道如何篩選出正在運行我的應用程序,而不連接到他們。只是從發現的結果。 這可能嗎?以什麼方式?我正在研究UUID,但我不知道是否能夠用於此目的,以及如何使用這些UUID。 在此先感謝!Android藍牙服務發現

回答

1

我不知道如何過濾掉運行我的應用程序

的那些這取決於你想下運行是什麼味道的Android。

Android 4.4以上版本將由128位UUID

以下是代碼摘錄支持藍牙掃描過濾。

private static final String CT_UUID = "Your specific 128-bit UUID string"; 
......... 
String myOSVersion = android.os.Build.VERSION.RELEASE; // e.g. myOSVersion := "4.2" 
float myOSVersionNum = Float.valueOf(myOSVersion.substring(0,3)); // Example 4.3, 4.4, etc. 
......... 
if (myOSVersionNum < 4.4) { 
    // --- Android 4.3 (NO UUID Filtering) --- 
    mBluetoothAdapter.startLeScan(mLeScanCallback); 
} else { 
    // --- Android 4.4 or Later (With UUID Filtering) --- 
    UUID[] uuids = new UUID[1]; 
    uuids[0] = UUID.fromString(CT_UUID); 
    mBluetoothAdapter.startLeScan(uuids, mLeScanCallback); 
} 

但是對於早期的Android版本,這將不起作用。
這裏有很多關於Android 4.3以及更早版本的替代選項的帖子。

對於我自己的需要,Android 4.3涉及到,做後置採集設備名稱過濾是足夠的/足夠的。