Android
 Computer >> コンピューター >  >> プログラミング >> Android

【Android開発】アプリの初回インストール日時を取得する方法をわかりやすく解説

はじめに

この記事では、Androidアプリケーションが最初にインストールされた日時を取得して画面に表示する方法を解説します。PackageInfoクラスが持つfirstInstallTimeフィールドを利用することで、アプリの初回インストール時刻をミリ秒単位のタイムスタンプとして簡単に取得できます。

手順1:新規プロジェクトを作成する

Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成しましょう。

手順2:レイアウトファイル(activity_main.xml)にコードを追加する

res/layout/activity_main.xml に以下のコードを追加します。

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android"
xmlns:app = "https://schemas.android.com/apk/res-auto"
xmlns:tools = "https://schemas.android.com/tools"
android:layout_width = "match_parent"
android:gravity = "center"
android:layout_height = "match_parent"
tools:context = ".MainActivity"
android:orientation = "vertical">
<TextView
android:id = "@+id/text"
android:textSize = "30sp"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content" />
</LinearLayout>

上記のコードでは、初回インストール日時を表示するためのTextViewを1つ配置しています。LinearLayout全体を中央寄せ(gravity="center")にし、テキストサイズは30spに設定しています。

手順3:MainActivity.javaにコードを追加する

src/MainActivity.java に以下のコードを追加します。

package com.example.myapplication;
import android.app.ActivityManager;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.telephony.TelephonyManager;
import android.view.WindowManager;
import android.widget.TextView;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
public class MainActivity extends AppCompatActivity {
    TextView textView;
    @RequiresApi(api = Build.VERSION_CODES.P)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
        WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.text);
        PackageManager pm = getApplicationContext().getPackageManager();
        String pkgName = getApplicationContext().getPackageName();
        PackageInfo pkgInfo = null;
        try {
            pkgInfo = pm.getPackageInfo(pkgName, 0);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
Long ver = pkgInfo.firstInstallTime;
DateFormat simple = new SimpleDateFormat("dd MMM yyyy HH:mm:ss:SSS Z");
Date result = new Date(ver);
textView.setText("" +simple.format(result));
}
}

コードのポイント解説

  • PackageManager:アプリのパッケージ情報へアクセスするためのクラスです。
  • getPackageInfo(pkgName, 0):自アプリのパッケージ名を指定してPackageInfoオブジェクトを取得します。
  • firstInstallTime:アプリが最初にインストールされた時刻を、エポック(1970年1月1日)からの経過ミリ秒で返します。
  • SimpleDateFormat:取得したタイムスタンプを「dd MMM yyyy HH:mm:ss:SSS Z」という読みやすい日時形式に整形します。

なお、アプリの最終更新日時を知りたい場合は、同じPackageInfoクラスのlastUpdateTimeフィールドを使うことで同様に取得できます。

アプリを実行して結果を確認する

それでは、実際にアプリケーションを実行してみましょう。実機のAndroidスマートフォンをPCに接続した状態で、Android Studioのツールバーにある実行(Run)アイコンをクリックします。デバイスを選択して起動すると、端末の画面に以下のように初回インストール日時が表示されます。

【Android開発】アプリの初回インストール日時を取得する方法をわかりやすく解説

まとめ

本記事では、PackageManagerとPackageInfo.firstInstallTimeを使って、Androidアプリの初回インストール日時を取得・表示する方法を紹介しました。トライアル期間の管理やユーザー利用履歴の記録など、さまざまなシーンで活用できるテクニックなので、ぜひ実際のプロジェクトでも試してみてください。

  1. 【Android】Spinner(スピナー)で選択された値を取得する方法を徹底解説

    AndroidでSpinnerの値を取得するには? このチュートリアルでは、AndroidアプリでSpinner(スピナー/ドロップダウンリスト)からユーザーが選択した値を取得し、Toastで表示する方法をサンプルコード付きで解説します。Spinnerは、複数の選択肢の中から1つだけを選ばせたい場合に便利なUIコンポーネントです。 ステップ1:新規プロジェクトを作成する Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成しましょう。 ステップ2:レイアウトファイル(activity_

  2. 【Android】プログラムでアプリケーションを終了する方法|finish()とSystem.exit(0)の使い方

    はじめにこの記事では、Androidアプリをプログラム(コード)から終了させる方法を解説します。ボタンをタップするとアプリが終了するシンプルなサンプルアプリを通じて、実装手順をステップごとに見ていきましょう。ステップ1:新規プロジェクトの作成Android Studioを起動し、「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。ステップ2:レイアウトファイルの編集res/layout/activity_main.xml に以下のコードを追加します。このレイアウトには、ガイダンス用のTextViewと、アプリを終了するためのB