Google Play服务:如何处理没有Google Play的设备?

Google Play服务是一个Android库,其目标是提供:

  • OAuth 2.0身份validation
  • Google+login
  • Google+ +1button
  • 各种其他的好东西

如果我要使用它(例如,因为我想要Google+login),那么设备没有Google Play的用户会遇到什么情况? (Nook,Cyanogenmod,中国移动,旧设备等)

问题:我的应用程序是否会与此类设备不兼容? 它会显示为兼容,但然后崩溃,或不工作?
使用Google Play服务时,是否有最佳做法来记住这一点?

Solutions Collecting From Web of "Google Play服务:如何处理没有Google Play的设备?"

如果Google Play服务的function对您的应用程序至关重要,则无法使您的应用程序正常工作。

您可以使用GooglePlayServicesUtil.isGooglePlayServicesAvailable(android.content.Context)检查您的应用中是否启用了服务。
如果播放服务可用,则返回ConnectionResult.SUCCESS

您现在可以尝试说服用户安装它(如果可能)或禁用正在使用该服务的function。

由于Google Play服务不是在清单中声明的​​function,因此您的应用程序应该在任何设备上安装正确,但如果您正在使用API​​而不检查它们是否可用,则可能会在以后崩溃。

您可以尝试模拟器的行为。 只需创build一个不带Google API的AVD,并将其应用于其上。

 GooglePlayServicesUtil.isGooglePlayServicesAvailable(android.content.Context) 

已弃用!

使用:

  GoogleApiAvailability api = GoogleApiAvailability.getInstance(); int code = api.isGooglePlayServicesAvailable(activity); if (code == ConnectionResult.SUCCESS) { // Do Your Stuff Here } else { AlertDialog alertDialog = new AlertDialog.Builder(activity, R.style.AppCompatAlertDialogStyle).setMessage( "You need to download Google Play Services in order to use this part of the application") .create(); alertDialog.show(); } 

如果您以某种方式需要使用Play服务,或者如果您维护调用Play服务的传统应用程序,那么我会推荐以下策略:

  1. 在应用程序启动时,检查播放服务是否可用
  2. 如果不可用,则将播放服务呼叫redirect到NOGAPP

NOGAPP是Google Play服务的开源实现。
它缺乏很多特点,但正在积极发展。 许多function仍然是存根(stub)。

对于位置服务,存在LOST ,这是Google Play服务位置API的替代品。

你的应用程序可能无法正常工作,但至less比崩溃更好。

当然,从一开始,最好不要使用Google Play服务。