我正在尝试使用操作系统2.2获取安装在我的Android手机中的所有应用程序install time
,但我没有准确地安装它们的时间,而是获得今天的日期和时间。我知道我可以彻底解决这个问题:
packageManager.getPackageInfo(packageName, 0).firstInstallTime;
但此版本适用于API level 9
以上,我需要在firstInstallTime
中获取API level 8
。
搜索向我展示了实现它的另一种方式,但它提供了今天的日期,而不是应用程序的安装日期。
PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo("app.package.name", 0);
String app = appInfo.sourceDir;
long installedTime = new File(app).lastModified();
知道如何获得我想要的结果?请更新。任何帮助表示赞赏。
答案 0 :(得分:-1)
试试这个块。这解决了您的问题
PackageManager pm = getApplicationContext().getPackageManager();
try {
PackageInfo info = pm.getPackageInfo("com.google.android.googlequicksearchbox", 0);
Field field = PackageInfo.class.getField("firstInstallTime");
long timestamp = field.getLong(info);
Date date = new Date(timestamp);
Log.e("DATE", date + "");
} catch (NameNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SecurityException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalArgumentException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (NoSuchFieldException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}