Android获取UID的新思路

在 Android 设备中,获取唯一UID通常是个让程序员头疼的事情。大家都是各显神通来拼接 随机 存值等等。
例如这篇文章非常良心,各种尝试优缺点都有详述:Android Q 获取设备唯一ID(UDID\GUID\UUID\SSAID\GAID)

首先 我们获取UID,很多时候是想圈定一些非正常用户,我这里提供一种思路,例如公司做的是一个招聘类app,那么每次app冷启动时,可以获取微信app的安装时间。

如何获取呢?Android获取某个app首次安装时间和更新时间

获取结果分为三种情况

  1. 微信安装时间远远早于自己app安装时间
  2. 微信安装时间接近自己app安装时间
  3. 微信安装时间获取失败(未安装)

显而易见,1通常是正常用户,2值得怀疑,3要重点怀疑。不用解释,懂的都懂。

当然不同的市场,需要被锚定的app也不一样。例如国内用户,绝大多数正常用户的手机都会安装微信,如果是海外市场,可以锚定Tik Tok,或者直接锚定系统预装app:Google Play ,或者GMS相关的应用等。

以下是ChatGPT 4.0给出的解决方案,聊胜于无吧,营养有限。


在 Android 设备中,UID(User ID)通常指的是应用程序在安装时系统分配给它的唯一标识符。当设备被重置或应用被卸载再重新安装时,这个 UID 是会发生变化的。

要获取一个即使在设备重置或刷机后也不会改变的设备唯一标识符(设备UID),可以使用以下方法:

  1. IMEI (International Mobile Equipment Identity): 这是手机的硬件序列号,用于标识 GSM 和 UMTS 网络中的每个手机。但由于隐私和安全问题,从 Android 10 开始,非系统应用无法访问 IMEI。此外,对于平板电脑和没有电话功能的设备,它们可能根本没有 IMEI。

  2. 序列号 (Serial Number): 每部 Android 设备都有一个唯一的序列号,但是从 Android Oreo 8.0 开始,非系统应用无法访问设备的序列号。

  3. Android ID: 它是在第一次启动设备时随机生成的,并且在恢复出厂设置后可能会更改。因此,它并不完全靠谱如果需要跨设备重置保持唯一性。

  4. 广告ID (Advertising ID): 这是用户可以重置的、与用户 Google 账户相关的 ID。这主要用于广告目的,并不是一个固定不变的标识符。

要注意的是,出于用户隐私保护的原因,Android 不鼓励开发者跟踪设备的唯一标识符。因此,如果你需要为用户在你的应用内生成一个唯一标识符,最好的做法是在用户首次使用你的应用时创建一个 UUID 并将其持久存储在设备上。即使设备被重置,只要用户没有卸载应用,这个 UUID 就会保持唯一和不变。如果用户卸载了应用,则可以允许他们通过账号等信息来恢复自己的数据和设置。

根据当前的 Android 开发者策略和隐私政策,没有一种方法可以保证在所有情况下都能得到设备级别的唯一且不变的标识符。考虑使用基于账户的身份认证或在应用层面生成和管理唯一标识是一个更合适的选择。

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值