/** * 获取当前应用程序的包名
* @param context 上下文对象
* @return 返回包名
*/
public static String getAppProcessName(Context context) {
int pid = android.os.Process.myPid();
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> infos = manager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo info : infos) {
if (info.pid == pid)
return info.processName;
}
return "";
}
通过PackageManager可以获取到我们想要的信息,例如:程序图标、程序名称、包名、VersionName、VersionCode等。
/*
* @Author Sun Ruichuan
*
* */
public ArrayList<HashMap<String, Object>> getItems(Context context) {
PackageManager pckMan = context.getPackageManager();
ArrayList<HashMap<String, Object>> items = new ArrayList<HashMap<String, Object>>();
List<PackageInfo> packageInfo = pckMan.getInstalledPackages(0);
for (PackageInfo pInfo : packageInfo) {
HashMap<String, Object> item = new HashMap<String, Object>();
item.put("appimage", pInfo.applicationInfo.loadIcon(pckMan));
item.put("packageName", pInfo.packageName);
item.put("versionCode", pInfo.versionCode);
item.put("versionName", pInfo.versionName);
item.put("appName", pInfo.applicationInfo.loadLabel(pckMan).toString());
items.add(item);
}
return items;
}