【问题标题】:How can we validate IMEI Number after Android version 10?Android 版本 10 之后我们如何验证 IMEI 号码?
【发布时间】:2023-01-12 11:13:36
【问题描述】:

我需要验证 IMEI 号码,他们是否有任何验证输入 IMEI 的机制?我们能否获得 true 或 false 的验证状态?

【问题讨论】:

  • 为什么需要验证 IMEI 号码?如果你是一个企业应用程序,进行某种形式的跟踪,你可能是设备所有者,在这种情况下你可以获得它。如果不是,则没有充分理由需要知道 IMEI。这是故意删除的,以防止在硬件级别进行跟踪。
  • 我们正在运行一个用例,在该用例中,我们向组织的员工提供电话,就像向用户发放笔记本电脑一样。我们已经记录了向哪个用户发布了哪个 IMEI,现在我们需要验证该 App 是否已下载到同一部手机上。所以我们不问什么是 IMEI 号码——只问我们拥有的号码是否正确。
  • 这是在企业设备管理中注册它的情况,而不是编写需要 IMEI 的应用程序。请参阅android.com/enterprise/management 这还允许您控制设备上安装的内容、安全更新等。

标签: android imei


【解决方案1】:

你不能,第三方应用程序不能使用 IMEI,也不能使用手机的序列号和其他不可重置的设备标识符。

对不可重置设备标识符的限制

从 Android10 开始,应用程序必须具有 READ_PRIVILEGED_PHONE_STATE 特权权限,以访问设备的不可重置 标识符,包括 IMEI 和序列号。 read more

您仍然可以通过调用 android.telephony.TelephonyManager.getDeviceId() 获取旧版 android 中不可重置的设备标识符。

或者,如果你能得到一个唯一身份使用此代码

Secure.getString(getContext().getContentResolver(),Secure.ANDROID_ID);

【讨论】:

    【解决方案2】:

    不行,你不能在 Android 10 之后获取 IMEI, 使用此方法将达到相同的目的,但要注意它在调试和发布时并不相同,它同时包含数字和字母。

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
         imei = Settings.Secure.getString(Objects.requireNonNull(getContext()).getContentResolver(), Settings.Secure.ANDROID_ID);
        }
    

    【讨论】:

      猜你喜欢
      • 2022-10-06
      • 1970-01-01
      • 2022-01-21
      • 2014-10-03
      • 2020-04-02
      • 2014-10-20
      • 2016-01-29
      • 1970-01-01
      • 2017-06-17
      相关资源
      最近更新 更多