方法一
通过获取这三个参数: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,将会重新生成唯一码。