在Android 2.2中获取应用程序安装时间?

时间:2013-02-07 12:28:50

标签: android package-managers android-package-managers

我正在尝试使用操作系统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();

知道如何获得我想要的结果?请更新。任何帮助表示赞赏。

1 个答案:

答案 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();
        }