android - 唯一的设备ID

时间:2013-08-14 15:09:01

标签: android

是的,我看了所有类似的问题,但是我找不到合适的答案。我需要设备ID来为AdMob设置测试设备。我的第一种方法(由于安全原因而改变了一些数字):

  final TelephonyManager tm = (TelephonyManager) c
            .getSystemService(Context.TELEPHONY_SERVICE);
   Log.w("ID", tm.getDeviceId());

结果:358948074051795

文档说明:返回唯一的设备ID,例如GSM的IMEI和CDMA手机的MEID或ESN。如果设备ID不可用,则返回null。

我的第二种方法:

   Log.w("ID_1",
            Secure.getString(c.getContentResolver(), Secure.ANDROID_ID));

结果:98ade639139bf376

描述:在设备首次启动时随机生成的64位数字(作为十六进制字符串),并且应在设备的生命周期内保持不变

问题:有什么区别?我应该将哪一个用于AdMob测试目的?

2 个答案:

答案 0 :(得分:1)

差异写在两种方法的描述中......
但是,我认为使用IMEI number更可靠,因为它可以识别设备本身。如果设备必须恢复默认配置怎么办?
如果你选择第二个选项,你必须检查它是否没有生成新号码。 有关IMEI的更多信息,请访问:http://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity

答案 1 :(得分:1)

<强> 1.Code

Settings.Secure#ANDROID_ID returns the Android ID as an unique 64-bit hex string

import android.provider.Settings.Secure;

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

Toast.makeText(this, deviceId, Toast.LENGTH_SHORT).show();

<强> 2.manifest

在清单文件中添加使用权限

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