如何在Android应用程序中管理Google Play服务更新?

3

我对如何在应用程序中管理Google Play服务感到有些迷茫。

文档指定应下载最新版本的play-services,并且应使用版本号在gradle.build中进行设置,例如:

dependencies {
    //...
    compile 'com.google.android.gms:play-services:6.1.+'
}

然后解释如下:
Be sure you update this version number each time Google Play services is updated.

这是什么意思?是否意味着每次发布新版本都应该在应用程序中更新,并将其版本号重置为build.gradle(这意味着每次都要制作新的apk,听起来很疯狂)?

还指定应在清单中添加以下标记:

<meta-data android:name="com.google.android.gms.version"
       android:value="@integer/google_play_services_version" />

为什么没有解释呢?

后来我在这个SO答案中发现,应该在应用程序中使用类似以下内容检查Google Play服务版本:

// Check status of Google Play Services
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);

// Check Google Play Service Available
try {
    if (status != ConnectionResult.SUCCESS) {
    GooglePlayServicesUtil.getErrorDialog(status, this, RQS_GooglePlayServices).show();
    }
} catch (Exception e) {
    Log.e("Error: GooglePlayServiceUtil: ", "" + e);
}

如果应用中的版本不是最新版,它会打开一个对话框以下载最新版。

但是,它到底是做什么的?在构建apk时,它是否替换lib集?如果是这样,它如何管理在build.gradle中设置的版本号?

有谁能帮助澄清这个问题吗?

1个回答

4

这是否意味着每次发布新版本时都需要制作一个新的apk文件?

不一定。当您发布新版本的应用程序时,请检查该库的更新,因为它可能已经修复了一些问题。但如果您懒得检查新版本,您仍然可以继续使用旧版本,因为它们不会突然停止工作。

<meta-data ...为什么没有任何解释?

这是由GooglePlayServicesUtil和安装在您手机上的play服务框架使用的信息,以确保即使您的应用程序使用了较旧的库版本,一切也能正常工作。该对话框是向用户说明如何操作的简单方法。

.. 这将打开一个对话框,以便在应用程序中的版本不是最新版本的情况下下载最新版本。 但它是做什么的?

使用google服务需要设备上的两个组件。

1)Play服务框架应用程序。

https://play.google.com/store/apps/details?id=com.google.android.gms

它提供管理Google登录信息等服务。当某个应用程序需要时,用户必须通过Play商店安装和更新版本。

2)Play服务库。

这是您与应用程序一起使用的内容,它仅提供使用上述应用程序提供的服务的类。您需要通过gradle来更新库。

该库需要特定版本的应用程序。因此,为了检查是否已安装该应用程序并且该应用程序至少具有所需版本,您需要使用GooglePlayServicesUtil部分。

如果应用程序不比库旧,则没有问题。它将根据<meta-data了解如何处理旧版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接