我如何获得ADMOB的设备ID?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (65)

我正在使用Eclipse为Android开发应用程序,并且我想要集成Admob来赚钱。教程说我应该看LogCat来查找ID,但它在哪里?

当我在测试模式或真实模式下运行时,eclipse有时会通知广告返回,但它不显示在emu中......任何人都可以解释吗?

提问于
用户回答回答于

如果在模拟器上运行AdMob ADS,那么就没有ID了。只需使用AdManager方法并将其设置为测试即可。_像logcat这样的仿真器。如果在实际设备上运行USB调试并查看logcat,ID将出现在其中。

用户回答回答于

如果你正在大量设备上进行测试,则可能需要一些实际添加正在运行设备的设备ID的方法。

下面的代码将使当前运行的设备以编程方式进入一个显示测试设备

...
    if(YourApplication.debugEnabled(this)) //debug flag from somewhere that you set
    {

        String android_id = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID);
        String deviceId = md5(android_id).toUpperCase();
        mAdRequest.addTestDevice(deviceId);
        boolean isTestDevice = mAdRequest.isTestDevice(this);

        Log.v(TAG, "is Admob Test Device ? "+deviceId+" "+isTestDevice); //to confirm it worked
    }

需要使用Android ID的MD5,而且它需要大写。下面是我使用的MD5代码

public static final String md5(final String s) {
    try {
        // Create MD5 Hash
        MessageDigest digest = java.security.MessageDigest
                .getInstance("MD5");
        digest.update(s.getBytes());
        byte messageDigest[] = digest.digest();

        // Create Hex String
        StringBuffer hexString = new StringBuffer();
        for (int i = 0; i < messageDigest.length; i++) {
            String h = Integer.toHexString(0xFF & messageDigest[i]);
            while (h.length() < 2)
                h = "0" + h;
            hexString.append(h);
        }
        return hexString.toString();

    } catch (NoSuchAlgorithmException e) {
        Logger.logStackTrace(TAG,e);
    }
    return "";
}

扫码关注云+社区