您的位置首页百科知识

Android中获取应用程序信息PackageManger

Android中获取应用程序信息PackageManger

的有关信息介绍如下:

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 pakageinfos =pm.getInstalledPackages(0);

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 getAppInfo() {

PackageManager pm = context.getPackageManager();

List pakageinfos = pm.getInstalledPackages(0);

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();

}

}