LoginSignup
2
2

More than 5 years have passed since last update.

【Android】アプリ起動時、GooglePlay開発者サービスがインストールされているかどうかチェックする方法

Last updated at Posted at 2017-11-09

事象

あるプロジェクトにて、社内のテスト端末を使用している際に、下記エラーが発生しているを発見。

エラー
Failed to load googlecertificates. qw:No acceptable module found. Local version is 0 and

対応

自身の端末ではエラーにはなっておらず、調査してみると、
どうやらテスト端末側にGooglePlay開発者サービスがインストールされていないため、
com.google.android.gms:play-servicesは使用出来ないですよ、ってことらしい。
しかしコンソール上でエラーが吐き出されているだけで、異常終了にはならないため気づきづらい。
そこで、起動時にチェックかけられたらいいんじゃない?ってなり、
さらに調べてみると、以下のようにチェックが可能であることがわかった。

MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(null)

    setContentView(R.layout.activity_main)

    // GooglePlay開発者サービスがインストールされているかチェックする
    val api = GoogleApiAvailability.getInstance()
    val code = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this)
    if (code == ConnectionResult.SUCCESS) {
        // インスール済みなので通常処理を実行
    } else {
        // インストールされていないのでダイアログを表示
        api.getErrorDialog(this, code, 0).show()
    }

}

インストールされていない場合は、公式に用意されている以下のダイアログを呼べばいいと思う。
api.getErrorDialog(this, code, 0).show()

備考

今回はたまたま見つけたので対応しましたが、
基本的にはGooglePlay開発者サービスはインストールされているはずなので、
おまじない程度に起動時に書いておくのもありかなって思いました。(問い合わせとかくると面倒だし…)

Qiitaに同様の記事がなかったので自分へのメモとして記事にしてみました。
他にも同様の件で困っている方の参考になれば幸いです。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2