如何修复apiAvailability.isGooglePlayServices在模拟器上的行为异常

时间:2019-04-15 12:16:07

标签: android google-play-services

我正在开发一个使用Google Maps的应用程序,尝试在模拟器上启动我的应用程序时遇到了一个奇怪的问题-它(显然)无法正常工作,并显示错误消息“ MyApp在Google Play服务上遇到问题。请再试一遍”。

为解决此问题,我决定检查Google Play服务的可用性(按照Google {{3}}本指南的建议)。和..它没有按预期工作。

因此,这是我用来检查Google Play服务可用性的代码,即使未安装所需的版本,模拟器的结果代码也始终为SUCCESS。

 private fun checkPlayServices(): Boolean {
        val apiAvailability = GoogleApiAvailability.getInstance()
        val resultCode = apiAvailability.isGooglePlayServicesAvailable(activity)
        if (resultCode != ConnectionResult.SUCCESS) {
            if (apiAvailability.isUserResolvableError(resultCode)) {
                apiAvailability.getErrorDialog(this.activity, resultCode, 9000)
                    .show()
            } else {
                Timber.tag("tag").e("This device is not supported.")
            }
            return false
        }
        return true
    }

在日志中,我可以清楚地看到消息

W / GooglePlayServicesUtil:Google Play服务已过期。需要13400000但找到了13280022

我无法理解Google为什么说在没有Google Play服务的版本上安装了Google Play服务

我希望该函数返回某种错误并显示正确的对话框,但它只会为模拟器返回成功。 但是,如果我在没有google API的版本上运行它,则会正确显示有关完全没有google play服务的错误。

所以,我的问题是-模拟器或API是否有问题,在普通手机上会不会表现出这种错误,还是仅仅是模拟器错误(功能)?

0 个答案:

没有答案