2012-06-05 38 views
2

我目前正在創建一個Android應用程序,需要使用Android手機的名稱來存儲有關手機的信息。所以電話的名字總是在變化。但是,當其他手機執行多個藍牙掃描時,即使在電話名稱更改後,他們似乎也只使用手機識別的名字。有沒有辦法強制Android應用程序查看新名稱或刷新某種緩存藍牙掃描完成的所有內容?強制其他手機識別藍牙設備名稱更新爲Android

回答

0

我只需要手動清除緩存,然後確保不配對電話。當手機未配對時,該名稱不會緩存在手機中。

+0

你是如何清除緩存的? – Gp2mv3

+0

http://www.androidcentral.com/android-201-how-and-when-clear-app-cache-or-data。 – johns4ta

+0

在Java中有解決方案嗎? – Gp2mv3

0

您是否使用android.bluetooth.BluetoothAdapter.setName()來設置名稱?

+0

是的,我用它來設置名稱。看起來這個名字被緩存了。經過一番研究,我認爲它可能涉及fetchUuidsWithSdp()的使用,但我無法弄清楚如何實現它。 – johns4ta

2

正如Howell的答案所述,您可以使用setName更改名稱,並且您可以使用fetchUuuidsWithSdp()來強制更新另一個手機的名稱,但我相信您無法強制另一個設備更新它爲您提供的服務信息和名稱。

我想你能做的最好的就是簡單地創建一個新的連接,並希望它觸發它更新它對你的信息,但即使這樣做,它會依賴於實現(即不可靠) ,因爲它沒有必要。

+0

這是手機配對時的正確答案。我不打算配對手機。我只需要手動清除緩存而不是配對電話,因此沒有信息將被存儲在藍牙適配器緩存中。謝謝你的迴應。它使我找到了正確的答案。 – johns4ta

+1

如果您打算在沒有配對的情況下進行藍牙通信,那麼請提前警告 - Android 4中存在一個錯誤... http://code.google.com/p/android/issues/detail?id=29039 – Tom

+0

我不太明白他們是湯姆的問題。如果你能理解,你能否詳細說明一下? – johns4ta