【问题标题】:How can we validate IMEI Number after Android version 10?Android 10 后如何验证 IMEI 号码?
【发布时间】:2022-10-06 13:25:58
【问题描述】:

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

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

标签: android imei


【解决方案1】:

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

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

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

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

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

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);
        }
    

    【讨论】:

      【解决方案3】:

      但是如果用户请求并授予特权权限,我们不能得到imei号吗?

      【讨论】:

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