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

时间:2012-11-02 08:40:02

标签: android cyanogenmod google-play-services lock-in

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

  • OAuth 2.0身份验证
  • Google+登录
  • Google+ +1按钮
  • 各种其他好东西

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

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

4 个答案:

答案 0 :(得分:25)

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();
        }

答案 1 :(得分:23)

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

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

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

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

您可以尝试使用模拟器进行操作。只需在没有Google API的情况下创建AVD并将您的应用程序放在其上。

答案 2 :(得分:0)

如果您的应用使用Google登录或Firebase Cloud Messaging之类的GMS功能,则在没有GMS的设备上无法正常运行。 如果设备支持GMS,建议您使用GMS。否则,请使用HMS(华为移动服务)。

请参考以下链接:

因此,您可以在可以使用GMS的设备上使用Google+登录;否则,请使用HUAWEI帐户登录。

答案 3 :(得分:-2)

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

  1. 在应用开始时,检查播放服务是否可用
  2. 如果不可用,请将Play服务重定向到microG
  3. microG是Google Play服务的开源实现 它缺乏许多功能,但正在积极开发中。许多功能仍然存根。

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

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

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