方法一
通過獲取這三個參數:IMEI、AndroidId、macAddress ,拼接,然后通過md5編碼,可以保證唯一性。
存在問題:
- 可能需要申請權限:
獲取 IMEI 需要加入權限 android.permission.READ_PHONE_STATE
獲取 macAddress 需要加入權限 android.permission.ACCESS_WIFI_STATE
如果權限申請失敗,就獲取不到對應的數據了。 - 如果用戶先不給權限,后面又給權限,可能出現同一個手機,出現不同的設備號。
方法二
通過UUID 生成一段唯一的字符串,然后把字符串保存到用戶的手機中。
分為兩種情況:
- 如果用戶有sd卡,就通過文件的形式保存在sd卡中。
- 如果用戶沒有sd卡,就保存到SP中去。
存在問題:
- 存在sd卡的情況下,如果用戶刪除我們保存唯一碼的文件,那么我們就拿不到唯一碼了。(每次需要用這個唯一碼時,需要判斷文件是否存在)
2.如果唯一碼是保存到sp中的,那么用戶一旦卸載app,將會重新生成唯一碼。