使用 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);
}
}
注意:關閉裝置並開啟後,此圖示將返回啟動器。