Android 要使用AdMob,您真的需要检查Google Play服务吗?

Android 要使用AdMob,您真的需要检查Google Play服务吗?,android,admob,google-play-services,Android,Admob,Google Play Services,谷歌的说明说,如果你想通过谷歌播放服务在Android应用程序中使用AdMob,你必须确保用户的设备安装了谷歌播放服务APK。然而,我有可怕的困难,试图让这个工作;我注意到,即使我卸载手机上的Google Play服务更新(并且不用麻烦检查服务是否可用),我的应用程序仍然能够完美地检索和显示广告!尽管LogCat中存在如下错误,但仍然存在这种情况: W/GooglePlayServicesUtil(26558): Google Play services out of date. Requir

谷歌的说明说,如果你想通过谷歌播放服务在Android应用程序中使用AdMob,你必须确保用户的设备安装了谷歌播放服务APK。然而,我有可怕的困难,试图让这个工作;我注意到,即使我卸载手机上的Google Play服务更新(并且不用麻烦检查服务是否可用),我的应用程序仍然能够完美地检索和显示广告!尽管LogCat中存在如下错误,但仍然存在这种情况:

W/GooglePlayServicesUtil(26558): Google Play services out of date.  Requires 4132500 but found 3159130
大概我的手机出厂时还安装了谷歌Play服务的原始版本。我只是想知道我是否真的需要检查Google Play服务是否可以成功使用AdMob。现在看来不是。有人能告诉我为什么我要费心做这张支票吗。是为了处理我上面给出的谷歌链接的案例4吗

设备上缺少或禁用了Google Play services APK,如果用户明确卸载或禁用它,可能会发生这种情况


您得到的logcat错误适用于情况2或3


Admob是否在案例4中出局很有趣。我怀疑这是可以的,因为旧的Admob类附带GPS库,所以在更糟糕的情况下,它可能会退回到使用它们的路径;DR-您无需检查Google Play服务即可使用移动广告API

Google Play services中提供的Google移动广告与Google Play services中的大多数(所有?)其他库相比是独一无二的,因为它可以在设备上不安装服务APK的情况下工作

如果设备上安装的APK是较新版本,则库将从APK服务加载类,并使用这些较新的类请求广告。否则,您在应用程序中编译的Google Play服务版本足以获取广告


这里的好处是,当设备安装了服务时,您将始终有效地运行库的最新版本。如果您的服务版本比您编译应用程序时使用的版本旧(例如:上面的示例),或者设备上没有服务(例如:Kindle Fire),则使用您的应用程序编译的库仍然可以进行广告获取,但您仍然需要手动拉入更新。

谢谢。我想我不得不相信你的话,因为我无法从我的设备上完全删除Google Play服务来检查案例4。遗憾的是,谷歌/安卓没有在某个地方更明确地说这一点,因为要让检查正常运行(谢天谢地,我现在已经做到了!)需要做很多工作。你可以在没有谷歌API的模拟器上尝试案例4。或者如果你周围有一堆点燃的火。Android不会更明确地说这一点,因为在一般情况下,如果服务不可用,服务API根本不起作用。但AdMob可能会做得更好。我相信谷歌Play服务库的分析部分也可以在没有服务apk的情况下使用。如果有人能在亚马逊设备上确认这一点,那就太好了。页面上已经有了。它也可以作为常见问题添加到新指南中。@snark顺便说一句,我刚刚发现亚马逊提供了一项很棒的服务。你可以将你的apk拖到亚马逊进行测试,他们还会在屏幕上显示你的应用程序在他们的设备上的外观和感觉。这里是链接