2013-02-07 60 views
0

我正在嘗試使用OS 2.2安裝在我的Android手機中的所有應用程序的install time,但我沒有準確獲得它們的安裝時間,而是獲取了今天的日期和時間。我知道,我能得到它徹底:獲取應用程序在Android 2.2中安裝時間?

packageManager.getPackageInfo(packageName, 0).firstInstallTime;

但是這是可用於API level 9起,我需要得到firstInstallTimeAPI 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

請試試這個 http://stackoverflow.com/questions/3127489/install-time-for-android-application – madhus

回答

-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(); 
     } 
+0

場是哪種類型的?我的意思是什麼包導入? –

+0

import java.lang.reflect.Field; – detay34

+0

葉..它計算出來.... :-) –

相關問題