Android
PackageManager
サーチ…
アプリケーションのバージョンを取得する
public String getAppVersion() throws PackageManager.NameNotFoundException {
PackageManager manager = getApplicationContext().getPackageManager();
PackageInfo info = manager.getPackageInfo(
getApplicationContext().getPackageName(),
0);
return info.versionName;
}
バージョン名とバージョンコード
アプリケーションの現在のビルドのversionName
とversionCode
を取得するには、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