安卓获取设备ID用于AdMob

19

可能是重复问题:
如何获取 Admob 的设备 ID

我正在我的 Android 设备上测试 AdMob,并根据文档尝试执行 adRequest 来获取设备 ID。然而,我无法在 logCat 中找到设备 ID!我做错了什么?

 AdRequest adRequest = new AdRequest();
 adRequest.addTestDevice(AdRequest.TEST_EMULATOR);            
 adRequest.addTestDevice("test");     

编辑:这不是重复的问题,其他帖子中的方法对我无效。


我正在我的设备上运行它! - Jaume
为了广告目的,您只能使用来自Google Play服务的专用广告ID。否则,您可以使用此库生成每个设备的唯一ID(使用Identity.getDeviceId(context))或者通过Identity.getInstallationId(context)为您的应用程序安装生成标识符。 - caw
3个回答

35

在设备上运行时进行实时广告请求,并查看日志。应该有一个信息级别的日志,其中显示:

I/Ads: 要在此设备上获取测试广告,请调用adRequest.addTestDevice("YOUR_HASHED_DEVICE_ID");

由于SDK对设备ID进行了哈希处理,因此最好通过日志直接获取这个数字,而不是尝试获取Android设备ID并手动进行哈希以获取相同的数字。


1
你的解决方案看起来不错,但我仍然没有收到与ID相关的日志! - Jaume
你正在使用哪个 SDK 版本(我假设是 4.3.1)? 当你检查日志时,是否过滤掉了 info 级别的语句? 你是否看到其他带有“Ads”标签的日志? - Eric Leichtenschlag
2
啊哈!我想通了。如果您的布局XML文件中已经有“ads:testDevices =” ,AdMob将不会在logcat输出中打印“获取此设备上的测试广告...”消息。将其删除,然后您将看到logcat消息。 - Andy Dennie

28
 final TelephonyManager tm =(TelephonyManager)getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);

String deviceid = tm.getDeviceId();

9
请记住,这需要“读取手机状态”权限。 - Paul

7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接