如何唯一识别Android设备以跟踪设备

时间:2014-11-29 18:53:07

标签: android

您好我正在开发一个应用程序,我们使用设备唯一ID跟踪我们的应用安装。

我们现在正在做https://stackoverflow.com/a/2785493/2455259

private String android_id = Secure.getString(getContext().getContentResolver(),
                                                    Secure.ANDROID_ID); 

我知道从android 4.2开始,对于不同的用户https://stackoverflow.com/a/27013749/2455259可能会有所不同。

现在我无法使用wifi或蓝牙的mac地址,因为它需要打开然后获取。即使我不能使用IMEI,因为有些桌子没有通话功能,所以他们没有IMEI。

现在有什么选择来唯一识别android设备?

2 个答案:

答案 0 :(得分:2)

  

现在有什么选择来唯一识别android设备?

我担心分配自己唯一的号码是最有效的方法,因为ANDROID_ID被破坏了(你链接的答案是不正确的 - 也见到那里的评论),依赖它是非常徒劳的,因为它有时可能是对于许多设备或null都是一样的,所以任何东西都是独一无二的,因此使用它是没有意义的,因为它增加了麻烦而不是帮助。 Android博客上有关于此主题的帖子" Identifying App Installations"你可能也希望通过它。

答案 1 :(得分:0)

我知道这已经过时了,OP可能已经开始了,但随着Instance ID的引入,我们可以用它来识别一个独特的安装。

相关代码也非常简单。

String iid = InstanceID.getInstance(context).getId();

好处包括无需为Android Marshmallow及更高版本指定权限。对于那些在开始时需要唯一ID并且不能依赖用户提供的权限模型的开发人员而言,这似乎是一个优势。