Android 如何知道APK文件是否比已安装的文件更新?
我正在制作一个应用程序,以便从我自己的主页进行更新。我做了更新程序,效果很好 现在,我只想在页面上的APK比安装的更新时更新。我所说的更新,是指安装日期更新,或者APK的大小不同。我总是忘记更新版本名 因此:如何检索已安装APK的安装日期、已安装APK的文件日期或APK的大小(/data/app dir需要root访问权限,我不希望我的用户需要这些权限) 我知道ApplicationInfo和PackageManager,但在他们的文档中没有找到我需要的信息 谢谢! L.我想这就是你要找的 仅供参考,您可能应该使用这似乎是一种适得其反的做法,以尽量不必记住升级版本。最终,您的.apk的安装日期和大小永远不会确定您的应用程序是新的还是旧的,因为如果您删除代码,.apk的大小可能会缩小,而且有人可能拥有更旧的版本,但在您所寻找的最短日期之后安装 我建议使用版本代码而不是版本名称来确定应用程序是否较新,因为版本名称可以是任意字符串,但版本代码是简单的整数比较 我想这就是你要找的 仅供参考,您可能应该使用这似乎是一种适得其反的做法,以尽量不必记住升级版本。最终,您的.apk的安装日期和大小永远不会确定您的应用程序是新的还是旧的,因为如果您删除代码,.apk的大小可能会缩小,而且有人可能拥有更旧的版本,但在您所寻找的最短日期之后安装Android 如何知道APK文件是否比已安装的文件更新?,android,apk,android-applicationinfo,Android,Apk,Android Applicationinfo,我正在制作一个应用程序,以便从我自己的主页进行更新。我做了更新程序,效果很好 现在,我只想在页面上的APK比安装的更新时更新。我所说的更新,是指安装日期更新,或者APK的大小不同。我总是忘记更新版本名 因此:如何检索已安装APK的安装日期、已安装APK的文件日期或APK的大小(/data/app dir需要root访问权限,我不希望我的用户需要这些权限) 我知道ApplicationInfo和PackageManager,但在他们的文档中没有找到我需要的信息 谢谢! L.我想这就是你要找的 仅供
我建议使用版本代码而不是版本名称来确定应用程序是否较新,因为版本名称可以是任意字符串,但版本代码是简单的整数比较 自己找出答案。如有兴趣,请参阅下文
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;
}
我自己找出答案。如有兴趣,请参阅下文
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;
}
版本名?或者你是说数字,对吗?关键是数字。。。只是别忘了更新它。。。DUH@AndersMetnik:也许我不清楚?我不想使用versionName(是的,它是'versionName',因为它必须写入清单文件)。版本名?或者你是说数字,对吗?关键是数字。。。只是别忘了更新它。。。DUH@AndersMetnik:也许我不清楚?我不想使用versionName(是的,它是'versionName',因为它必须写入清单文件)。谢谢,我已经找到了下面的方法(忘记按“发送”)。版本控制的一个问题是,您需要检索APK来获取它,而获取修改时间/大小是简单而小的http查询。在最坏的情况下,用户将安装两次相同的apk。无论如何,我更新了versionCode,但是我现在每天发布几个版本,所以有一半的时间我忘记了。现在还不实用。。。谢谢你的建议!谢谢,我已经找到了下面的方法(忘记按“发送”)。版本控制的一个问题是,您需要检索APK来获取它,而获取修改时间/大小是简单而小的http查询。在最坏的情况下,用户将安装两次相同的apk。无论如何,我更新了versionCode,但是我现在每天发布几个版本,所以有一半的时间我忘记了。现在还不实用。。。谢谢你的建议!