0

我正在將一個iPhone應用程序移植到使用Bluetooth LEAndroid。 在iPhone應用程序中,我掃描了一個自定義藍牙外圍設備,並將其設備UUID號存儲爲一個字符串。這允許我稍後在設備再次連接時進行比較。Android藍牙LE外設IP是靜態的嗎?

BluetoothDevice.ACTION_UUID可以用來讀取Android中的外設UUID,但我不知道如何使用它來獲取設備連接時的UUID。任何人都可以幫忙嗎?

此外,撥打getAddress()時,Android的確給了我看起來像外設的IP地址。我假設這個IP地址是在首次發現外設時由Android設備隨機創建的。

這些IP是靜態的,因爲在我的應用程序的未來發布期間,我可以依靠它們來識別每個藍牙外設?或者他們/他們會不會隨着時間的推移而改變,即。設備重啓後等。

謝謝

+0

你看過[BluetoothDevice#ACTION_UUID](http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#ACTION_UUID)嗎? – ChuongPham 2014-09-04 14:33:40

+0

這就是廣播一個UUID。我想從外設讀取它。 – Darren 2014-09-04 15:08:14

+0

也許這[link](https://developer.android.com/guide/topics/connectivity/bluetooth-le.html)可能會有所幫助。 – ChuongPham 2014-09-04 15:22:49

回答

1

忘記UUID。你應該使用什麼來代替未來連接中的外設是外設的藍牙地址。類BluetoothDevice的方法getAddress()正好返回。

然後,在LeScanCallback中,再次檢查此地址(字符串相等)。

+0

謝謝。什麼'getAddress()'返回正是我所指的在我的問題抱歉。藍牙外設沒有這樣的地址,他們有一個UUID,所以Android基本上把這個地址分配給外設。這個地址在分配的設備上的外設是否一樣?我知道iOS有一個頻繁更改外設的分配IP地址的習慣,但使用UUID始終是相同的。謝謝 – Darren 2014-09-08 09:55:14

+1

@Darren出於明顯的安全原因,iOS(也可能是Android)爲了每隔一段時間(我相信15分鐘)更改**自己的地址**。雖然外設的地址通常是** static **,所以不要指望它改變。另外,'getAddress()'返回在廣告數據包中傳輸的外設的靜態地址。它是**不是**手機分配的ID。 – 2014-09-08 10:47:59

+0

非常好。這就是我需要知道的。因此,我可以存儲地址並在將來的連接上進行比較。謝謝。 – Darren 2014-09-08 11:16:10