【问题标题】:Get Application Install time in Android 2.2?在 Android 2.2 中获取应用程序安装时间?
【发布时间】:2013-02-07 21:15:44
【问题描述】:

我正在尝试获取安装在我的带有 OS 2.2 的 Android 手机中的所有应用程序的 install time,但我没有得到它们的确切安装时间,而是得到今天的日期和时间。我知道我可以彻底搞定:

packageManager.getPackageInfo(packageName, 0).firstInstallTime;

但这适用于API level 9 及以上,我需要在API level 8 中获得firstInstallTime

搜索向我展示了另一种实现它的方法,但它给出的是今天的日期,而不是应用的安装日期。

PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo("app.package.name", 0);
String app = appInfo.sourceDir;
long installedTime = new File(app).lastModified();

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

【问题讨论】:

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


【解决方案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();
        }

【讨论】:

  • 字段属于哪种类型?我的意思是要导入什么包?
  • 导入 java.lang.reflect.Field;
猜你喜欢
  • 2011-02-19
  • 1970-01-01
  • 2011-04-04
  • 1970-01-01
  • 2011-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多