119

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

4

3 回答 3

176

更新: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); 

以上来自链接@有唯一的Android设备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"/>
于 2013-06-01T05:39:57.837 回答
30

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

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

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

在此处输入图像描述

于 2013-06-01T06:03:56.150 回答
5

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

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

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

.

于 2013-06-01T05:59:40.337 回答