如何知道APK文件是否比安装的文件更新?

时间:2012-11-13 14:12:44

标签: android apk android-applicationinfo

我正在制作一个应用程序,可以从我自己的主页进行更新。我做了更新程序,工作正常。

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

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

我了解ApplicationInfo和PackageManager,但在他们的文档中找不到我需要的信息。

谢谢! 升。

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

我认为this SO Answer正是您所寻找的。

仅供参考,您可能应该使用Android's practices for versioning.这似乎是一种反效果的解决方案,试图不必记住提升版本。最终安装日期和.apk的大小永远不会确定您的应用程序是更新还是更旧,因为如果删除代码,你的.apk可能会缩小,有人可能有更旧的版本,但是在您寻找的最短日期之后安装它。

我建议使用版本代码而不是版本名来确定应用程序是否更新,因为版本名称可以是任意字符串,但版本代码是简单的整数比较。 This is a clear SO example