アプリケーションのインストール日時、更新日時を取得する


「アプリケーションのヴァージョン情報を設定する」の記事ではアプリケーションのバージョンを取得する方法の説明がありました。

PackageInfoクラスからバージョンを取得していました。PackageInfoクラスにはバージョン以外にも情報を取得することは可能ですが、2.3からは新たに以下の情報が取得できるようになりました。

  • インストール日時:firstInstallTime
  • 更新日時:lastUpdateTime

以下はサンプルコードです。

PackageInfoクラスに追加されたメンバ

上記にもありますようにSDK2.3(API9)からPackageInfoクラスに新たにfirstInstallTimelastUpdateTimeが追加されました。

共にPublicのフィールドで、long型になります値はUTC(1970年1月1日午前0時からの経過時間)です。

getPackageManagerメソッドでPackageManagerを取得し、さらにPackageManagerクラスのgetPackageInfoメソッドでPackageInfoクラスを取得します。

そして追加されたフィールドにアクセスしてインストール日時、更新日時を得てDateクラスを生成しています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
 
    TextView textFirstInstallTime = (TextView)findViewById(R.id.TextFirstInstallTime);
    TextView textLastUpdateTime = (TextView)findViewById(R.id.TextLastUpdateTime);
 
    PackageInfo packageInfo = null;
    try {
            packageInfo = getPackageManager().getPackageInfo("org.jpn.techbooster.packageinfosample", PackageManager.GET_META_DATA);
    } catch (NameNotFoundException e) {
            e.printStackTrace();
    }
 
    // 1970年1月1日午前0時からの経過時間からDateクラスを作成する
    Date dateFirstInstallTime = new Date(packageInfo.firstInstallTime);
    Date dateLastUpdateTime = new Date(packageInfo.lastUpdateTime);
 
    //作成したDateクラス(=インストール日時、更新日時)を表示する
    textFirstInstallTime.setText("FirstInstallTime : "+ dateFirstInstallTime);
    textLastUpdateTime.setText("LastUpdateTime : "+ dateLastUpdateTime);
}
One Comment