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

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

  • OAuth 2.0身份validation
  • Google+登录
  • Google+ +1按钮
  • 各种其他好吃的东西

如果我要使用它(例如,因为我希望Google+登录),那么设备没有Google Play的用户会怎样? (Nook,Cyanogenmod,中国移动,旧设备等)

问题:我的应用会与这些设备不兼容吗? 它会显示为兼容但随后崩溃,还是不起作用?
在使用Google Play服务时,是否有最佳做法要记住这一点?

如果Google Play服务中的function对您的应用至关重要,则无法让您的应用运行。

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

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

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

您可以使用模拟器尝试该行为。 只需在没有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. 在应用开始时,检查Play服务是否可用
  2. 如果不可用,请将Play服务重定向到NOGAPP

NOGAPP是Google Play服务的开源实现。
它缺乏许多function,但正在积极开发中。 许多function仍然存根。

对于位置服务,有一个LOST ,它是Google Play服务位置API的直接替代品。

你的应用程序可能无法完美运行,但至少它比崩溃更好。

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