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