gpt4 book ai didi

android - 你如何提示用户更新谷歌播放服务?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:01:07 24 4
gpt4 key购买 nike

我可以很容易地检测到我设备的 google play services 应用程序需要更新,并显示 getErrorDialogFragment() 以提示用户更新它:

     GoogleApiAvailability googleApi = GoogleApiAvailability.getInstance();
mServiceAvailabilityCode = googleApi.isGooglePlayServicesAvailable(this);
if (mServiceAvailabilityCode == ConnectionResult.SUCCESS) {
...
else {
if (googleApi.isUserResolvableError(mServiceAvailabilityCode)) {
switch (mServiceAvailabilityCode) {
....
case SERVICE_VERSION_UPDATE_REQUIRED:
googleApi.showErrorDialogFragment(SplashActivity.this, mServiceAvailabilityCode, PLAY_SERVICES_RESOLUTION_REQUEST);
break;
....
}

但是,如果 Google Play 服务已停用且已过时,则会向用户显示一个带有“更新”按钮的对话框,一旦用户按下该按钮,应用会立即返回到onActivityResult,然后我在 OnActivityResult 中捕获响应和请求代码,如下所示:

       @Override
protected void onActivityResult(int requestCode, int mServiceAvailabilityCode, Intent data) {
super.onActivityResult(requestCode, mServiceAvailabilityCode, data);
switch (requestCode) {
case PLAY_SERVICES_RESOLUTION_REQUEST:
finish();
// do i need to launch app manager-> app info for google play services ?

因此,用户按下对话框中的“更新”按钮并没有启动 Android 的 Playstore 并加载“Playstor 服务”应用程序供用户更新,这是我所期望的。按“更新”直接返回到 onActivityResult。这就是我感到困惑的地方。 Android 不应该为我推出这个吗?还是我必须自己在 OnActivityResult 中完成?

最佳答案

当您遇到 2 个 Google Play 服务 (GPS) 问题时,问题是由特定情况引起的。因为 GPS 也被禁用 Google Play 商店 (GPT),将不会在设备上运行。

如果您的 Google Play 服务已过期,则使用错误代码 ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED(错误代码 2)调用 showErrorDialogFragment,效果很好。

但如果您的 GPS 既已禁用又已过时,则 googleApiAvailability api 的工作方式存在问题。如果您调用 isGooglePlayServicesAvailable() 它将返回它发现的第一个错误,但不一定是您要首先解决的错误。问题是知道您有另一个错误需要首先解决。 isGooglePlayServicesAvailable() 在这方面没有帮助。

在我的例子中,播放服务既被禁用又过时了。因此,方法是首先调用 showErrorDialogFragment,您将获得 SERVICE_VERSION_UPDATE_REQUIRED 的响应错误代码。

Android 将尝试通过发送 pendingIntent 来启动 Google Play Store (GPT) 来更新 GPS 来解决它,但这会失败,因为 GPT 依赖于 GPS 的 ENABLED 版本。因为您正在调用 showErrorDialogFragment,它会在启动 GPT 失败后调用 onActivityResult。

下一步是编写 onActivityResult。我需要再次测试 isGooglePlayServicesAvailable() 。如果您仍然得到相同的错误代码 (SERVICE_VERSION_UPDATE_REQUIRED),那么您需要在 onActivityResult再次调用 showErrorDialogFragment,但这次传递给它一个不同的错误代码,ConnectionResult .SERVICE_DISABLED(错误代码 3)。这会将用户带到应用程序管理器以首先启用 google play 服务。然后当返回到应用程序时,您需要测试 isGooglePlayServicesAvailable 并且它应该会检测到 google 服务仍然过时。如果您成功更新应用程序,onActivityResult 应该允许您确定 isGooglePlayServicesAvailable 是否成功并且您可以继续。请注意,您可能需要添加一个标志,以便您知道要再次测试 google play 服务兼容性,而不是继续执行启动过程。

(所以,googleApiAvailability 真正应该做的是首先返回已禁用的错误(即 ConnectionResult.SERVICE_DISABLED 又名错误代码 3),因此您可以在尝试更新 GPS 之前先解决该问题。)

关于android - 你如何提示用户更新谷歌播放服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43648520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com