web-dev-qa-db-ja.com

Google Play開発者サービス:Google Playを備えていないデバイスを処理するにはどうすればよいですか?

Google Play開発者サービス はAndroidライブラリであり、その目的は以下を提供することです。

  • OAuth2.0認証
  • Google+サインイン
  • Google ++ 1ボタン
  • 他のさまざまなグッズ

(たとえば、Google +サインインが必要なために)それを使用した場合、デバイスにGoogle Playがないユーザーはどうなりますか? (Nook、Cyanogenmod、China Mobile、古いデバイス、 多分Huawei? など)

質問:私のアプリはそのようなデバイスと互換性がなくなりますか?互換性があると表示されますが、クラッシュしますか、それとも機能しませんか?
Google Play開発者サービスを使用する際に、これを念頭に置くためのベストプラクティスはありますか?

26
Nicolas Raoul
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();
        }
26
Maxi

Google Play開発者サービスの機能がアプリに不可欠である場合、アプリを機能させる方法はありません。

GooglePlayServicesUtil.isGooglePlayServicesAvailable(Android.content.Context) を使用して、アプリ内からサービスが有効になっているかどうかを確認できます。
Play開発者サービスが利用可能な場合はConnectionResult.SUCCESSを返します。

これで、ユーザーにインストールするように説得するか(可能であれば)、サービスを使用している機能を無効にすることができます。

Google Play開発者サービスはマニフェストで宣言されている機能ではないため、アプリはどのデバイスにも正常にインストールされますが、APIが利用可能かどうかを確認せずに使用している場合は、後でクラッシュする可能性があります。

エミュレータで動作を試すことができます。 Google APIを使用せずにAVDを作成し、その上にアプリを配置するだけです。

23
Janusz