• Android 获得所有应用程序包


    本文转载自:http://blog.sina.com.cn/s/blog_3e333c4a01015v3e.html

     1 推荐方法
     2 1、全部程序包
     3     private void queryFilterAppInfo() {  
     4         PackageManager pm = this.getPackageManager();  
     5         // 查询所有已经安装的应用程序  
     6         List<ApplicationInfo> listAppcations = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);// GET_UNINSTALLED_PACKAGES代表已删除,但还有安装目录的
     7             for (ApplicationInfo app : listAppcations) {  
     8             AppInfo appInfo = new AppInfo();  
     9             appInfo.setAppLabel((String) app.loadLabel(pm));  
    10             appInfo.setAppIcon(app.loadIcon(pm));  
    11             appInfo.setPkgName(app.packageName);
    12             mlistAppInfo.add(appInfo);   
    13         }       
    14     }
    15    
    16 2、 获得所有系统的
    17     public void querySysAppInfo() {  
    18         PackageManager pm = this.getPackageManager();
    19         Intent intent = new Intent(Intent.ACTION_MAIN, null);  
    20         intent.addCategory(Intent.CATEGORY_LAUNCHER);  
    21         // 通过查询,获得所有ResolveInfo对象.  
    22         List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);  
    23          
    24         for (ResolveInfo reInfo : resolveInfos) {  
    25         String activityName = reInfo.activityInfo.name; // 获得该应用程序的启动Activity的name  
    26         String pkgName = reInfo.activityInfo.packageName; // 获得应用程序的包名  
    27         String appLabel = (String) reInfo.loadLabel(pm); // 获得应用程序的Label  
    28         Drawable icon = reInfo.loadIcon(pm); // 获得应用程序图标  
    29         System.out.println(appLabel + " activityName---" + activityName + " pkgName---" + pkgName);  
    30         }    
    31     } 
    32 
    33 
    34 3、 最简单的方法   
    35     public  boolean appIsInstalled(String packageName){
    36         try {
    37             PackageManager pm = this.getPackageManager();
    38             pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
    39             System.out.println("已安装"+packageName);
    40         } catch (NameNotFoundException e) {
    41             System.out.println("没有安装"+packageName);
    42             return false;
    43         }
    44         return true;
    45     }
    46 
    47 
    48 4、获得所有包信息   
    49     public void getInstallPackage() {
    50         PackageManager packageManager = this.getPackageManager();
    51         List<PackageInfo> packageInfoList=packageManager.getInstalledPackages(0);
    52         mlistAppInfo.clear();  
    53         for (int i=0;i<packageInfoList.size();i++) { 
    54             PackageInfo pi = packageInfoList.get(i);
    55             System.out.println((i+1)+":"+pi.toString());
    56         }  
    57     }
    58 5、直接启动方法
    59     public  void srartApp(String packageName){
    60         Intent intent = this.getPackageManager().getLaunchIntentForPackage(packageName);
    61         if(intent!=null)
    62         startActivity(intent); //已安装包 直接启动
    63     }
  • 相关阅读:
    vue 引用本地图片
    antdVue
    Nest.js —— A progressive Node.js framework
    20184313《网络对抗技术》Exp8 Web综合
    20184313《网络对抗技术》Exp7 网络欺诈防范
    20184313《网络对抗技术》Exp6 MSF应用基础
    20184313《网络对抗技术》Exp5 信息搜集与漏洞扫描
    网页激知序列号之途径(网友提供技术参考)
    【转】Delphi中正则表达式支持中文的写法
    遇到的一个奇怪问题
  • 原文地址:https://www.cnblogs.com/zhangping/p/3645247.html
Copyright © 2020-2023  润新知