サーチ…


アプリケーションのバージョンを取得する

public String getAppVersion() throws PackageManager.NameNotFoundException {
    PackageManager manager = getApplicationContext().getPackageManager();
    PackageInfo info = manager.getPackageInfo(
                            getApplicationContext().getPackageName(), 
                            0);

    return info.versionName;
}

バージョン名とバージョンコード

アプリケーションの現在のビルドのversionNameversionCodeを取得するには、Androidのパッケージマネージャーに問い合わせる必要があります。

try {
    // Reference to Android's package manager
    PackageManager packageManager = this.getPackageManager();

    // Getting package info of this application
    PackageInfo info = packageManager.getPackageInfo(this.getPackageName(), 0);

    // Version code
    info.versionCode

    // Version name
    info.versionName

} catch (NameNotFoundException e) {
    // Handle the exception
}

インストール時間と更新時間

あなたのアプリがインストールまたは更新された時間を得るには、Androidのパッケージマネージャーに問い合わせる必要があります。

try {
    // Reference to Android's package manager
    PackageManager packageManager = this.getPackageManager();

    // Getting package info of this application
    PackageInfo info = packageManager.getPackageInfo(this.getPackageName(), 0);

    // Install time. Units are as per currentTimeMillis().
    info.firstInstallTime

    // Last update time. Units are as per currentTimeMillis().
    info.lastUpdateTime

} catch (NameNotFoundException e) {
    // Handle the exception
}

PackageManagerを使用したユーティリティメソッド

ここでは、PackageManagerを使っていくつかの便利なメソッドを見つけることができます。

以下のメソッドは、パッケージ名を使用してアプリ名を取得するのに役立ちます

private String getAppNameFromPackage(String packageName, Context context) {
    Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
    mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    List<ResolveInfo> pkgAppsList = context.getPackageManager()
            .queryIntentActivities(mainIntent, 0);
    for (ResolveInfo app : pkgAppsList) {
        if (app.activityInfo.packageName.equals(packageName)) {
            return app.activityInfo.loadLabel(context.getPackageManager()).toString();
        }
    }
    return null;
}

以下のメソッドは、パッケージ名を使用してアプリアイコンを取得するのに役立ちますが、

private Drawable getAppIcon(String packageName, Context context) {
    Drawable appIcon = null;
    try {
        appIcon = context.getPackageManager().getApplicationIcon(packageName);
    } catch (PackageManager.NameNotFoundException e) {
    }

    return appIcon;
}

以下のメソッドは、インストールされているアプリケーションのリストを取得するのに役立ちます。

public static List<ApplicationInfo> getLaunchIntent(PackageManager packageManager) {

    List<ApplicationInfo> list = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);

    return list;
}

注:上記の方法でランチャーアプリケーションも提供されます。

以下のメソッドは、ランチャーからアプリアイコンを隠すのに役立ちます。

public static void hideLockerApp(Context context, boolean hide) {
    ComponentName componentName = new ComponentName(context.getApplicationContext(),
            SplashActivity.class);

    int setting = hide ? PackageManager.COMPONENT_ENABLED_STATE_DISABLED
            : PackageManager.COMPONENT_ENABLED_STATE_ENABLED;

    int current = context.getPackageManager().getComponentEnabledSetting(componentName);

    if (current != setting) {
        context.getPackageManager().setComponentEnabledSetting(componentName, setting,
                PackageManager.DONT_KILL_APP);
    }
}

注:デバイスのスイッチをオフにしてスイッチをオンにすると、このアイコンがランチャーに戻ります。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow