2017-07-26 74 views
0

我想知道如何獲取一個字符串,它唯一標識了android中的當前設備。 我知道這已經被問過,但所有的答案都是一樣的:使用ANDROID_ID常量。問題是它已被棄用,也不安全。還有其他的可能嗎?在android中獲取唯一的設備ID

謝謝。

+0

在哪個環境/語言? – nageeb

+1

它似乎不被棄用... https://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID – litelite

+2

你需要考慮你是否想要1)一個唯一的和永遠綁定的ID那個特定的硬件; 2)通過出廠重置重置的ID(這樣您就可以將手機賣給某人而不會出售您的身份; 3)與您的手機計劃綁定的ID,以便您可以交換SIM卡並與新運營商互動爲新人。 4)與特定應用的特定安裝相關聯的ID。 5)等「 –

回答

1

沒有理想的方法。最好的方法是自己生成一個,然後重複使用它直到安裝應用程序。您可以使用

String uniqueId = UUID.randomUUID().toString(); 

生成它的第一次應用程序啓動,並將其保存爲進一步使用共享的偏好。這將每一個新的安裝後更改,因此你可以跟蹤應用的安裝爲好。

+0

'UUID.randomUUID()'不提供唯一的ID。它每次都會給出隨機值。 –

+0

準確且因此在應用程序首次開放時生成。 –

+0

我在領域數據庫中使用了相同的主鍵。但我不認爲將它作爲唯一的設備ID是明智的。由於在卸載並重新安裝應用程序後無法獲取它。所以它不能用作唯一的設備ID。 –

0

參見下面的帖子裏面描述了幾種方法來獲取一個唯一的ID來標識Android設備..

https://medium.com/@ssaurel/how-to-retrieve-an-unique-id-to-identify-android-devices-c40080e04fa4

,並參考Android開發最佳實踐的唯一標識符 知道哪些建議和哪些不是..

https://developer.android.com/training/articles/user-data-ids.html

+1

如果不依賴於未來可能無效的外部網站鏈接,這將是一個很好的答案。考慮引用您鏈接的頁面的一些內容,這樣即使鏈接衰敗,該頁面仍然有效。 –

+0

@DaleWilson謝謝戴爾的建議,我真的想在這裏發表真實的演講,但有很多方法和很多觀點來描述,我認爲developer.android鏈接永遠不會失效,所以就是這樣。 – Shareefoo