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

在Android 2.2中获得应用程序安装时间?,android,package-managers,android-package-managers,Android,Package Managers,Android Package Managers,我正在尝试获取安装在我的Android手机上的OS 2.2应用程序的安装时间,但我没有得到它们的确切安装时间,而是得到了今天的日期和时间。我知道我可以彻底了解: packageManager.getPackageInfo(packageName,0).firstInstallTime 但这适用于API级别9以后的版本,我需要在API级别8中获得firstInstallTime 搜索给了我实现它的另一种方法,但它给出了今天的日期,而不是应用程序的安装日期 PackageManager pm = c

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

packageManager.getPackageInfo(packageName,0).firstInstallTime

但这适用于
API级别9
以后的版本,我需要在
API级别8
中获得
firstInstallTime

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

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

你知道我怎样才能得到我想要的结果吗?请更新。感谢您的帮助

试试这个方块。这就解决了你的问题

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;