如何记录应用最近一次更新时间?(不通过应用市场) 如何过滤系统应用?
通过三元素原理,记录用户自装应用最近一次更新时间点
如何记录应用最近一次更新时间?(不通过应用市场) 如何过滤系统应用?
通过三元素原理,记录用户自装应用最近一次更新时间点
f ((mAppInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
if ((mAppInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
mAppButtonState = AppButtonStates.FACTORY_RESET;
mAppButtonText = getText(R.string.app_factory_reset);
} else {
if ((mAppInfo.flags & ApplicationInfo.FLAG_ALLOW_CLEAR_USER_DATA) == 0) {
// Hide button if diableClearUserData is set
mAppButtonState = AppButtonStates.NONE;
visible = false;
} else {
mAppButtonState = AppButtonStates.CLEAR_DATA;
mAppButtonText = getText(R.string.clear_user_data_text);
}
}
} else {
mAppButtonState = AppButtonStates.UNINSTALL;
mAppButtonText = getText(R.string.uninstall_text);
}
上面标红的一句,if ((mAppInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0)就是用来判断应用程序是不是系统自带的。这样就可以通过这句来过滤掉系统自带的应用程序,例子如下
List packs = context.getPackageManager().getInstalledPackages(0);
int count = packs.size() - 1;
for (int i = 0; i <= count; i++) {
PackageInfo p = packs.get(i);
if (p.versionName == null) {
continue;
}
ApplicationInfo itemInfo = p.applicationInfo;
if ((itemInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0)
continue;
...............
}