2016-08-20 90 views
0

我的應用一直使用的DeviceID作爲唯一標識符和這一點,當然要求READ_PHONE_STATE作爲權限。這在過去一直沒有問題,但是現在我已經遷移到Marshmellow 23,在此請求此權限會在運行時顯示一個非常可怕的對話...的Android ID作爲替代設備ID

「允許{我的應用}製作和管理電話嗎?

這對剛想要得到的DeviceID的應用相當可怕的消息。

我在想切換到Android ID,因爲它不需要任何許可。

String androidId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID); 

使用谷歌搜索我發現使用android ID有一些問題,但它都是舊東西。回到Froyo時代,有一家手機廠商爲他們所有的手機都生產了相同的ID,但這就是我所見過的。

是任何人都知道的採用Android ID什麼問題? 謝謝, 院長

回答

1

你選擇使用什麼獨特的標識符在很大程度上取決於你需要標識符的具體用例。 Best Practices for Unique Identifiers training經歷了許多常見的使用情況和要使用的標識符。他們確實有一些與Android標識符一起工作的人物:

1:避免使用硬件標識符。硬件標識符,例如SSAID(Android的ID)和IMEI可避免在大多數使用情況而不限制所需的功能。

2:僅將廣告ID用於用戶分析或廣告用例。使用廣告ID時,請始終遵守限制廣告跟蹤標誌,確保標識符不能連接到個人身份信息(PII),並避免橋接廣告ID重置。

3:儘可能在所有其他使用情況下使用實例ID或私人存儲的GUID,但支付欺詐預防和電話除外。對於絕大多數的非廣告使用案例,實例ID或GUID應該是足夠的。

4:使用適合您的用例的API來降低隱私風險。使用DRM API API實現高價值內容保護,並使用SafetyNet API進行濫用防護。 Safetynet API是確定設備是否真實而不會產生隱私風險的最簡單方法。

在絕大多數情況下,Android ID仍然不是正確的使用方式。

+0

我認爲IMEI是阻止用戶重新安裝試用版軟件的唯一方法,但在我的情況下,UUID可以解決問題。感謝你的回答。 –