如何获取新的GoogleApiAvailability.getErrorDialog()的请求代码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取新的GoogleApiAvailability.getErrorDialog()的请求代码?相关的知识,希望对你有一定的参考价值。

我正在关注this guide以检查GoogleApiAvailability,它要求我致电getErrorDialog(int responseCode)

但是,结果代码是SERVICE_MISSING,SERVICE_VERSION_UPDATE_REQUIRED或SERVICE_DISABLED,然后用户需要安装更新。在这种情况下,调用getErrorDialog()方法并将结果错误代码传递给它。

该指南适用于getErrorDialog(int responseCode)但this page(getErrorDialog上的超链接)表示该方法已弃用

此方法已弃用。请改用getErrorDialog(Activity,int,int)。

根据文档,第一个int是请求代码,第二个int是响应代码。我从isGoogleApiAvailable(context)得到了响应代码,但我不知道请求代码是什么,我怎么得到它。

这是我的代码:

  // Ensure Google Play services framework is installed
        int gAAResult = GoogleApiAvailability
                .getInstance()
                .isGooglePlayServicesAvailable(this);
        if(gAAResult == ConnectionResult.SUCCESS){
            Log.d(TAG, "Play services available");
        } else {
            GoogleApiAvailability
                    .getInstance()
                    .getErrorDialog(this, ? ,gAAResult);
        }

问号要用实际请求代码替换的地方作为临时工作,我已将0传递给它。我没有没有播放服务的设备。在模拟器上,应用程序显示一个对话框(没有我的代码)来更新播放服务。但FCM文档建议对此检查进行编码

答案

第一个int是connectionResult,由isGooglePlayServicesAvailable(Context context)方法返回。第二个是用于错误对话的requestCode

显示错误对话框后,您将在活动的方法onActivityResult(int requestCode, int result, Intent data)中获得一个带有结果并传递请求代码的回调。由于您可能从一个执行结果形式开始几个活动,getErrorDialog(...)方法要求您将请求代码作为操作的唯一标识符传递,以帮助您处理结果。

实际上,您需要实现此功能,因为通用的Play服务错误对话框可能会帮助用户更新他/她手机上的Play服务,因此您会收到通知,问题实际已得到解决。如果你没那么幸运,也一样。

以上是关于如何获取新的GoogleApiAvailability.getErrorDialog()的请求代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何在过期之前获取新的 FacebookSDKAccessToken?

如何使用 ajax 在 LARAVEL 中获取新的 CSRF 令牌

sh 如何从原始存储库获取新的更改

getHibernateTemplate.save() - 如何获取受影响的行/新的自动增量

JS如何获取值

新的 Instagram API,如何按标签获取帖子