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


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

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クラスを生成しています。

    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