唯一标识Android设备:UUID与InstanceID

时间:2016-05-18 10:18:19

标签: android

我想识别用户的设备以发送推送通知。以前我一直在使用IMEI,但IMEI需要一些额外的权限,平板电脑也没有IMEI。

所以我考虑更新id系统,并看到Google本身建议使用InstanceID。

这似乎是一个很好的方法,但有两个警告:

  1. 令牌可能会更改,这意味着在我的后端服务器中管理它们以刷新它们并删除旧的
  2. 要求用户拥有Google Play服务。这个要求有多大?并非所有用户都拥有Google Play服务吗?
  3. 他们提出的另一个解决方案是使用UUID,但这个数字究竟有多独特?我是否必须使用这种方法准备碰撞?

1 个答案:

答案 0 :(得分:0)

您可以使用Android框架提供的android id。这是在设置设备时生成的。这不需要任何额外的权限。

Settings.Secure.getString(getBaseContext().getContentResolver(), Settings.Secure.ANDROID_ID);

编辑: 在某些情况下(工厂重置),这将改变。对于那些你可以使用的情况:这是用于 final String deviceId = ((TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId(); if (deviceId != null) { return deviceId; } else { return android.os.Build.SERIAL; }