Android 获得所有应用程序包

Android 获得所有应用程序包

  (2012-08-06 17:02:46)
  
推荐方法
1、         
    //全部程序包
private void queryFilterAppInfo() {  
PackageManager pm = this.getPackageManager();  
// 查询所有已经安装的应用程序  
List<ApplicationInfo> listAppcations = pm.getInstalledApplications( PackageManager.GET_UNINSTALLED_PACKAGES);//  GET_UNINSTALLED_PACKAGES代表已删除,但还有安装目录的
 
for (ApplicationInfo app : listAppcations) {  
AppInfo appInfo = new AppInfo();  
appInfo.setAppLabel((String) app.loadLabel(pm));  
appInfo.setAppIcon(app.loadIcon(pm));  
appInfo.setPkgName(app.packageName);
mlistAppInfo.add(appInfo);   
}  
       
    } 
   
 
2、   
   // 获得所有系统的
public void querySysAppInfo() {  
PackageManager pm = this.getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);  
intent.addCategory(Intent.CATEGORY_LAUNCHER);  
// 通过查询,获得所有ResolveInfo对象.  
List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);  
 
for (ResolveInfo reInfo : resolveInfos) {  
String activityName = reInfo.activityInfo.name; // 获得该应用程序的启动Activity的name  
String pkgName = reInfo.activityInfo.packageName; // 获得应用程序的包名  
String appLabel = (String) reInfo.loadLabel(pm); // 获得应用程序的Label  
Drawable icon = reInfo.loadIcon(pm); // 获得应用程序图标  
System.out.println(appLabel + " activityName---" + activityName  
+ " pkgName---" + pkgName);  
 
}        
       
    } 
 
3、     //最简单的方法   
public  boolean appIsInstalled(String packageName){
try {
PackageManager pm = this.getPackageManager();
pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
System.out.println("已安装"+packageName);
} catch (NameNotFoundException e) {
System.out.println("没有安装"+packageName);
return false;
}
return true;
}
 
4、// 获得所有包信息
   
public void getInstallPackage() {
PackageManager packageManager = this.getPackageManager();
List<PackageInfo>        packageInfoList=packageManager.getInstalledPackages(0);
mlistAppInfo.clear();  
            for (int i=0;i<packageInfoList.size();i++) { 
            PackageInfo pi = packageInfoList.get(i);
            System.out.println((i+1)+":"+pi.toString());
            }  
}
 
5、        //直接启动方法
public  void srartApp(String packageName){
    Intent intent = this.getPackageManager().getLaunchIntentForPackage(packageName);
    if(intent!=null)
    //已安装包 直接启动
    startActivity(intent);
}

转载于:https://www.cnblogs.com/merryjd/articles/2834439.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值