2017-02-02 7 views
4

私が持っているもの検出プレイサービスがインストールされ、アプリケーションで使用されるサービスを再生

私はが重く(Firebaseのために)サービスにはGoogle Playに依存しているアプリを持っているので、私はプレイサービスを持っているユーザーのデバイスを必要としますインストールされます。さらに重要なのは、デバイスにインストールされているPlayサービスのバージョンが、自分のアプリで使用しているPlayサービスと同じかそれ以上である必要があることです。私は

は、私は、ユーザーがバージョンは私がターゲットにしています古いプレイサービスのバージョンを使用している場合私のアプリのスプラッシュ画面にメッセージ(多分ダイアログやスナックバーを)見せたい欲しいもの

私のアプリ。

現在、私のアプリで使用しているPlayサービスのバージョンは10.0.1です。これは明らかにバージョン名です。私はこれを行うことができます知っている

int v = getPackageManager().getPackageInfo("com.google.android.gms", 0).versionName; 

しかし、私は、デバイスにインストールプレイサービスと、私が使用していますプレイサービスのバージョンを比較することができませんか。 versionNameの代わりにversionCodeを使用していますか?その場合、私が使用しているPlayサービスのversionCodeを知るにはどうすればよいですか?

これを行うには、別の(またはそれ以上の)方法がありますか?

+0

GoogleがサービスversionCodeを再生知りたいですか?携帯電話の? –

+0

あなたはその質問を読んだことがありますか? –

+0

私の悪いenglish.anyway幸運であなたを助けようとしている何でもOK –

答えて

10

これは私が使用する方法..です歓声

public static boolean checkPlayServices(Context context) { 
    final int PLAY_SERVICES_RESOLUTION_REQUEST = 9000; 
    GoogleApiAvailability api = GoogleApiAvailability.getInstance(); 
    int resultCode = api.isGooglePlayServicesAvailable(context); 
    if (resultCode != ConnectionResult.SUCCESS) { 
     if (api.isUserResolvableError(resultCode)) 
      api.getErrorDialog(((Activity) context), resultCode, PLAY_SERVICES_RESOLUTION_REQUEST).show(); 
     else { 
      showToast(context, "This device is not supported.", true); 
      ((Activity) context).finish(); 
     } 
     return false; 
    } 
    return true; 
} 
+3

この回答を少し拡大するには、 'resultCode == SERVICE_VERSION_UPDATE_REQUIRED'という条件を確認することができます。 結果コードとその意味の完全なリストについては、[the docs](https://developers.google.com/android/reference/com/google/android/gms/common/ConnectionResult)をご確認ください。 –

+0

@NicolásCarrascoはい最新版を使ってしかできない限り、「成功」とみなすことができます。 –

0

ウスマンの答えは、さらにあなたが非成功した結果コードのイベントでGoogleApiAvailability.makeGooglePlayServicesAvailable()を呼び出すことができ、良いです。ここではドキュメントで使用できる結果コードなどについて

int resultCode = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this); 
if (resultCode != ConnectionResult.SUCCESS) { 
    GoogleApiAvailability.getInstance().makeGooglePlayServicesAvailable(this); 
} 

さらなる詳細:このようhttps://developers.google.com/android/reference/com/google/android/gms/common/GoogleApiAvailability

関連する問題