Android 如何以编程方式获取Admob的设备ID?

Android 如何以编程方式获取Admob的设备ID?,android,device,admob,Android,Device,Admob,我有多个设备,我可能会有更多,不想一个接一个地添加它们。有人知道Admob使用什么ID吗?嗨,记下我的答案,如果你想获取设备ID, 您可以使用我在下面使用的TelephonyManager String device_id=null; TelephonyManager telemngr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); device_id=telemngr.getDeviceId(); 您还需要向

我有多个设备,我可能会有更多,不想一个接一个地添加它们。有人知道Admob使用什么ID吗?

嗨,记下我的答案,如果你想获取设备ID, 您可以使用我在下面使用的TelephonyManager

String device_id=null;
TelephonyManager telemngr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
device_id=telemngr.getDeviceId();
您还需要向清单中添加以下权限:

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

我试过了,它给了我ESN号码的十六进制值。这不是AdMob使用的号码

请求ad时,Dalvic调试监视器日志中会显示要使用的编号

此外,您可能还需要参考下一页(大约下半页):


我希望这对你有帮助;)

看起来是相同的问题,但没有答案:但这不是Admob使用的id。这不是正确的数字。不知道AdMob使用了什么,但不是这个。非常感谢。很好!这就是答案。在4.0+Nexus Galaxy上进行测试。在登录apk后,会显示不同的设备ID
String aid = Settings.Secure.getString(getContext().getContentResolver(), "android_id");

Object obj = null;
try {
    ((MessageDigest) (obj = MessageDigest.getInstance("MD5"))).update(
                                   aid.getBytes(), 0, aid.length());

    obj = String.format("%032X", new Object[] { new BigInteger(1,
                                   ((MessageDigest) obj).digest()) });
} catch (NoSuchAlgorithmException localNoSuchAlgorithmException) {
    obj = aid.substring(0, 32);
}