Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

哪个方法最可靠 #28

Closed
liulance opened this issue Jun 9, 2021 · 13 comments
Closed

哪个方法最可靠 #28

liulance opened this issue Jun 9, 2021 · 13 comments

Comments

@liulance
Copy link

liulance commented Jun 9, 2021

你好,最近项目需要获取唯一设备号,找了好多方法都不行,咱们这个里面哪个是最可靠的,不管是卸载重装还是什么情况,都是唯一不变的?多谢

@liyujiang-gzu
Copy link
Member

感觉都不是特别可靠:

  • IMEI:Android 10+ 获取不到了;
  • AAID:系统需自带 Google Play Services 才支持,且用户可以在系统设置中重置;
  • OAID:基本上是国内知名厂商 Android 10+ 才支持,且用户可以在系统设置中重置;
  • AndroidID:可能为空;
  • PseudoID:可能重复;
  • GUID:Android 10+ 卸载APP后会丢失;
  • WidevineID:未经过验证,不知道可靠性如何;

最好是通过服务端从以上标识中通过拜占庭容错方案得到可靠的设备唯一标识。不能使用服务端的话,综合来看 AndroidID 和 OAID 相对可靠一些吧,项目中我已经提供了一个getClientId/getClientIdMd5/getClientIdSha1获取客户端唯一标识,依次获取IMEI、AndroidID、OAID、WidevineID、GUID……

@liyujiang-gzu liyujiang-gzu pinned this issue Jun 10, 2021
@liulance
Copy link
Author

你好,我们项目集成了安全联盟 获取OAID 的SDK,跟你们这个有冲突吗

@liyujiang-gzu
Copy link
Member

你好,我们项目集成了安全联盟 获取OAID 的SDK,跟你们这个有冲突吗

从本库的4.0.0版本开始不会有冲突了

@liulance
Copy link
Author

那集成您这个SDK 具体有什么优势

@liyujiang-gzu
Copy link
Member

那集成您这个SDK 具体有什么优势

参阅 当前项目跟官方的有什么区别

@liyujiang-gzu
Copy link
Member

liyujiang-gzu commented Jun 10, 2021

那集成您这个SDK 具体有什么优势

主要有两点优势:

  • 开放源代码,无限制,对个人开发者来说更友好。
  • 适配的机型更广泛,不过仍受限于厂商的支持情况。

@liulance
Copy link
Author

实时获取和预获取,哪个方案更好点?有什么区别呢 ?

@liyujiang-gzu
Copy link
Member

liyujiang-gzu commented Jun 10, 2021

实时获取和预获取,哪个方案更好点?有什么区别呢 ?

这个要看应用场景来。

  • 预获取只能按优先级获取能拿到的值,IMEI、AndroidID、OAID、WidevineID、GUID只会有其中一个,在整个APP生命周期内有效,多次调用都不会重新获取,具体方法是getClientIdgetClientIdMD5getClientIdSHA1
  • 实时获取可以分别获取IMEI、AndroidID、OAID、WidevineID、GUID,每次调用都会重新获取,具体方法是getIMEIgetAndroidIDgetOAIDgetWidevineIDgetGUID

@liulance
Copy link
Author

好的,多谢

@liulance
Copy link
Author

image
你好,这里即初始化安全联盟的,又获取咱们的 OAID 有问题吗?会不会影响什么

@liyujiang-gzu
Copy link
Member

image
你好,这里即初始化安全联盟的,又获取咱们的 OAID 有问题吗?会不会影响什么

需要实际测试,能拿到结果应该就没影响

@liulance
Copy link
Author

能拿到,都是一样的结果

@laoyang75
Copy link

感觉都不是特别可靠:

  • IMEI:Android 10+ 获取不到了;
  • AAID:系统需自带 Google Play Services 才支持,且用户可以在系统设置中重置;
  • OAID:基本上是国内知名厂商 Android 10+ 才支持,且用户可以在系统设置中重置;
  • AndroidID:可能为空;
  • PseudoID:可能重复;
  • GUID:Android 10+ 卸载APP后会丢失;
  • WidevineID:未经过验证,不知道可靠性如何;

最好是通过服务端从以上标识中通过拜占庭容错方案得到可靠的设备唯一标识。不能使用服务端的话,综合来看 AndroidID 和 OAID 相对可靠一些吧,项目中我已经提供了一个getClientId/getClientIdMd5/getClientIdSha1获取客户端唯一标识,依次获取IMEI、AndroidID、OAID、WidevineID、GUID……

拜占庭容错方案是不行的,要解决需要依赖机器学习算法和跨app的大量数据归因,才能解决海量ID下的碰撞和多发。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants