1

我正在制作一个要从我自己的主页更新的应用程序。我做了更新程序并且工作正常。

现在,我希望仅当我页面上的 APK 比已安装的更新时才能继续更新。更新,我的意思是安装日期更新,或者 APK 的大小不同。我总是忘记更新版本名称...

所以:我如何检索已安装 APK 的安装日期,或已安装 APK 文件的日期,或 APK 的大小(/data/app 目录需要 root 访问权限,我不希望我的用户需要)?

我知道 ApplicationInfo 和 PackageManager,但在他们的文档中没有找到我需要的信息。

谢谢!L.

4

2 回答 2

1

自己找出答案。有兴趣的请看下文。

public long appinfo(String pkg){
    PackageManager p = context.getPackageManager();
    long labeldate = 0;
    try {
        PackageInfo label = p.getPackageInfo(pkg, 0);
        labeldate = label.lastUpdateTime;
    } catch (NameNotFoundException e) {
        e.printStackTrace();
    }
    return labeldate;
}
于 2012-11-13T16:12:47.320 回答
0

我认为这个 SO Answer就是你要找的。

仅供参考,您可能应该使用Android 的版本控制实践。这似乎是一种适得其反的解决方法,试图不必记住升级一个版本。最终,安装日期和 .apk 的大小永远不会确定您的应用程序是新的还是旧的,因为如果您删除代码,.apk 的大小可能会缩小,而且有人可能有一个更旧的版本,但是在您寻找的任何最短日期之后安装它。

我建议使用版本代码而不是版本名称来确定应用程序是否较新,因为版本名称可以是任意字符串,但版本代码是一个简单的整数比较。这是一个明确的 SO 示例

于 2012-11-13T15:22:36.210 回答