Android中获取应用程序信息PackageManger
的有关信息介绍如下:Android中获取应用程序信息PackageManger,
Android程序,经常用到用包名打开一个应用程序。
一、包名打开APP步骤:
1、获取应用程序的包名。或者提前知道应用程序的包名。
2、获取包名打开的intent。
3、Intent跳转到要打开的app。
二、跳转到相关app代码:
Intent intent = new Intent();
intent = getPackageManager().getLaunchIntentForPackage("com.farcore.videoplayer"); //打开android自带的视频播放器为例
startActivity(intent);
三、包名获取方式可能有:
1.//获取系统安装的所有包(包括用户安装的,和系统安装的) PackageManager pm = context.getPackageManager();
List
2.//获取应用程序的名字:
String str_name = packageInfo.applicationInfo.loadLabel(pm).toString();
3.//获取应用程序的版本:
String version = packageInfo.versionName;
4.//获取应用程序的图标:
Drawable drawable = packageInfo.applicationInfo.loadIcon(pm);
5.//获取应用程序的包名:
String packageInfoString = packageInfo.packageName;
6.//判断是否是用户的应用程序或者系统的应用程序:
if(!isSystemApp(packageInfo) && !isSystemUpdateApp(packageInfo)){
appInfos.add(appInfo);
Log.i("pxj", "yuanshi packageName is:::"+packageInfoString);
}
public boolean isSystemApp(PackageInfo pInfo) {
return ((pInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0);
}
public boolean isSystemUpdateApp(PackageInfo pInfo) {
return ((pInfo.applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0);
}
四.总代码
1.获取所有的用户安装的应用程序:
public List
PackageManager pm = context.getPackageManager();
List
appInfos = new ArrayList
for (PackageInfo packageInfo : pakageinfos) {
AppInfo appInfo = new AppInfo();
String str_name = packageInfo.applicationInfo.loadLabel(pm).toString();
appInfo.setAppName(str_name);
String version = packageInfo.versionName;
appInfo.setAppVersion(version);
Drawable drawable = packageInfo.applicationInfo.loadIcon(pm);
appInfo.setDrawable(drawable);
String packageInfoString = packageInfo.packageName;
appInfo.setPackageInfo(packageInfoString);
if(!isSystemApp(packageInfo) && !isSystemUpdateApp(packageInfo)){
appInfos.add(appInfo);
Log.i("pxj", "yuanshi packageName is:::"+packageInfoString);
}
appInfo = null;
}
Log.i("pxj", getClass().getSimpleName() + "--getAppInfo size is "+appInfos.size());
return appInfos;
}
2.根据包名打开app函数
public void startAPP(String appPackageName){
try{
Intent intent = mContext.getPackageManager().getLaunchIntentForPackage(appPackageName);
mContext.startActivity(intent);
}catch(Exception e){
Toast.makeText(mContext, "没有安装", Toast.LENGTH_LONG).show();
}
}