【问题标题】:How to get unique device hardware id in Android? [duplicate]如何在 Android 中获取唯一的设备硬件 ID? [复制]
【发布时间】:2013-05-27 23:52:46
【问题描述】:

如何在Android中获取手机重置或操作系统更新时无法更改的唯一设备ID?

【问题讨论】:

  • 只需尝试加载一个测试添加,加载成功后,您会在logcat中看到您的设备ID。

标签: android


【解决方案1】:

更新:19 -11-2019

以下答案与当今不再相关。

因此,对于任何寻找答案的人,您都应该查看下面链接的文档

https://developer.android.com/training/articles/user-data-ids


旧答案 - 现在不相关。 您在下面的链接中查看此博客

http://android-developers.blogspot.in/2011/03/identifying-app-installations.html

ANDROID_ID

import android.provider.Settings.Secure;

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

以上来自链接@Is there a unique Android device ID?

更具体地说,Settings.Secure.ANDROID_ID。这是设备首次启动时生成和存储的 64 位数量。 擦除设备时重置

ANDROID_ID 似乎是唯一设备标识符的不错选择。有缺点:首先,它在 2.2 之前的 Android 版本(“Froyo”)上不是 100% 可靠的。此外,一家主要制造商的流行手机中至少存在一个被广泛观察到的错误,其中每个实例都具有相同的 ANDROID_ID。

以下解决方案不是一个好的解决方案,因为 该值在设备擦除(“恢复出厂设置”)后仍然存在,因此当您的一位客户擦除他们的设备并将其传递给另一位客户时,您最终可能会犯下严重错误人

您可以使用以下方式获取设备的imei号码

  TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
  telephonyManager.getDeviceId();

http://developer.android.com/reference/android/telephony/TelephonyManager.html#getDeviceId%28%29

添加这是清单

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

【讨论】:

  • 手机重置或更新后是否保持不变?
  • 手机的 IMEI 在制造后不应更改。虽然这是假设设备是电话 - 这不是一个好的假设。
  • 我的评论说这不是相关的答案,他可能已经在网络上找到了这个解决方案,或者已经实现了,因为 stackoverflow 本身已经存在许多线程。但他的问题是“无法在手机重置或操作系统更新时更改的唯一设备 ID”
  • @Drc 同意了。好点子。所以在这种情况下我的回答不是最好的解决方案
  • @KiranManiya 是的,我明白。我会更新这篇文章。
【解决方案2】:

我使用以下代码获取 Android id。

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

Log.d("Android","Android ID : "+android_id);

【讨论】:

  • 是的 ANDROID_ID 很好,但根据文档:这是设备首次启动时生成和存储的 64 位数量。擦除设备时会重置。
  • 感谢您的回复。但是 ANDROID_ID 在设备重置时发生了变化。我想要 id 取决于 h/w 并且不会在 os 上更改。
  • 你知道我怎样才能直接从我的手机中获取这个输出的相同ID吗? (例如,我想获取 IMEI,我只需输入:*#06#)
  • 那个 android Id 是唯一的吗?
  • @AnixPasBesoin 那么相同型号的设备会给你相同的价值!
【解决方案3】:

请阅读谷歌开发者博客上的这篇官方博客文章: http://android-developers.blogspot.be/2011/03/identifying-app-installations.html

结论 对于绝大多数应用程序,要求是 识别特定的安装,而不是物理设备。 幸运的是,这样做很简单。

有很多很好的理由可以避免尝试识别 特定设备。对于那些想尝试的人来说,最好的方法是 可能在任何相当现代的东西上使用 ANDROID_ID, 旧设备的一些后备启发式方法

.

【讨论】:

    猜你喜欢
    • 2014-08-07
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多