`
zhanglibin1986
  • 浏览: 383117 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PackageManager()的使用列举相关的事件

阅读更多
来源:http://blog.csdn.net/wal812834184/archive/2010/10/20/5953906.aspx
PackageManager()的使用列举相关的事件
文章分类:移动开发

引用
Class for retrieving various kinds of information related to the application packages that are currently installed on the device. You can find this class through getPackageManager().


看来这个东西应该专门开一个帖子了,发现这个包里面的东西太多,以前写的很零碎不容易找

查询系统使用的Content Providers
Java代码

   1. for (PackageInfo pack : getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS)) {  
   2.         ProviderInfo[] providers = pack.providers;  
   3.         if (providers != null) {  
   4.             for (ProviderInfo provider : providers) {  
   5.                 Log.d("Example", "provider: " + provider.authority);  
   6.             }  
   7.         }  
   8.     }  

Java代码

   1. for (PackageInfo pack : getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS)) {  
   2.         ProviderInfo[] providers = pack.providers;  
   3.         if (providers != null) {  
   4.             for (ProviderInfo provider : providers) {  
   5.                 Log.d("Example", "provider: " + provider.authority);  
   6.             }  
   7.         }  
   8.     }  

for (PackageInfo pack : getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS)) {
        ProviderInfo[] providers = pack.providers;
        if (providers != null) {
            for (ProviderInfo provider : providers) {
                Log.d("Example", "provider: " + provider.authority);
            }
        }
    }


Java代码

   1. class PInfo {    
   2.     private String appname = "";    
   3.     private String pname = "";    
   4.     private String versionName = "";    
   5.     private int versionCode = 0;    
   6.     private Drawable icon;    
   7.     private void prettyPrint() {    
   8.         log(appname + "\t" + pname + "\t" + versionName + "\t" + versionCode + "\t");    
   9.     }    
  10. }    
  11.    
  12. private void listPackages() {    
  13.     ArrayList<PInfo> apps = getInstalledApps(false); /* false = no system packages */   
  14.     final int max = apps.size();    
  15.     for (int i=0; i<max; i++) {    
  16.         apps.get(i).prettyPrint();    
  17.     }    
  18. }    
  19.    
  20. private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) {    
  21.     ArrayList<PInfo> res = new ArrayList<PInfo>();            
  22.     List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);    
  23.     for(int i=0;i<packs.size();i++) {    
  24.         PackageInfo p = packs.get(i);    
  25.         if ((!getSysPackages) && (p.versionName == null)) {    
  26.             continue ;    
  27.         }    
  28.         PInfo newInfo = new PInfo();    
  29.         newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();    
  30.         newInfo.pname = p.packageName;    
  31.         newInfo.versionName = p.versionName;    
  32.         newInfo.versionCode = p.versionCode;    
  33.         newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());    
  34.         res.add(newInfo);    
  35.     }    
  36.     return res;     
  37. }   

Java代码

   1. class PInfo {    
   2.     private String appname = "";    
   3.     private String pname = "";    
   4.     private String versionName = "";    
   5.     private int versionCode = 0;    
   6.     private Drawable icon;    
   7.     private void prettyPrint() {    
   8.         log(appname + "\t" + pname + "\t" + versionName + "\t" + versionCode + "\t");    
   9.     }    
  10. }    
  11.    
  12. private void listPackages() {    
  13.     ArrayList<PInfo> apps = getInstalledApps(false); /* false = no system packages */   
  14.     final int max = apps.size();    
  15.     for (int i=0; i<max; i++) {    
  16.         apps.get(i).prettyPrint();    
  17.     }    
  18. }    
  19.    
  20. private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) {    
  21.     ArrayList<PInfo> res = new ArrayList<PInfo>();            
  22.     List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);    
  23.     for(int i=0;i<packs.size();i++) {    
  24.         PackageInfo p = packs.get(i);    
  25.         if ((!getSysPackages) && (p.versionName == null)) {    
  26.             continue ;    
  27.         }    
  28.         PInfo newInfo = new PInfo();    
  29.         newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();    
  30.         newInfo.pname = p.packageName;    
  31.         newInfo.versionName = p.versionName;    
  32.         newInfo.versionCode = p.versionCode;    
  33.         newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());    
  34.         res.add(newInfo);    
  35.     }    
  36.     return res;     
  37. }   

class PInfo {  
    private String appname = "";  
    private String pname = "";  
    private String versionName = "";  
    private int versionCode = 0;  
    private Drawable icon;  
    private void prettyPrint() {  
        log(appname + "\t" + pname + "\t" + versionName + "\t" + versionCode + "\t");  
    }  
}  
 
private void listPackages() {  
    ArrayList<PInfo> apps = getInstalledApps(false); /* false = no system packages */ 
    final int max = apps.size();  
    for (int i=0; i<max; i++) {  
        apps.get(i).prettyPrint();  
    }  
}  
 
private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) {  
    ArrayList<PInfo> res = new ArrayList<PInfo>();          
    List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);  
    for(int i=0;i<packs.size();i++) {  
        PackageInfo p = packs.get(i);  
        if ((!getSysPackages) && (p.versionName == null)) {  
            continue ;  
        }  
        PInfo newInfo = new PInfo();  
        newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();  
        newInfo.pname = p.packageName;  
        newInfo.versionName = p.versionName;  
        newInfo.versionCode = p.versionCode;  
        newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());  
        res.add(newInfo);  
    }  
    return res;   




用这个方法来获取系统内所包含的Applications信息:
Java代码

   1. private void listPackages() {   
   2.  
   3.    ArrayList < PInfo > apps = getInstalledApps(false); /* false = no system packages */  
   4.  
   5.    final int max = apps.size();   
   6.  
   7.   for (int i=0; i < max; i++) {   
   8.  
   9.        apps.get(i).prettyPrint();   
  10.  
  11.    }   
  12.  }  

Java代码

   1. private void listPackages() {   
   2.  
   3.    ArrayList < PInfo > apps = getInstalledApps(false); /* false = no system packages */  
   4.  
   5.    final int max = apps.size();   
   6.  
   7.   for (int i=0; i < max; i++) {   
   8.  
   9.        apps.get(i).prettyPrint();   
  10.  
  11.    }   
  12.  }  

private void listPackages() { 

   ArrayList < PInfo > apps = getInstalledApps(false); /* false = no system packages */

   final int max = apps.size(); 

  for (int i=0; i < max; i++) { 

       apps.get(i).prettyPrint(); 

   } 
}


Java代码

   1. 01 PackageManager manager = this.getPackageManager();   
   2.  
   3. 02 try {     
   4.  
   5. 03     
   6.  
   7. 04    PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);   
   8.  
   9. 05    String packageName = info.packageName;   
  10.  
  11. 06    int versionCode = info.versionCode;   
  12.  
  13. 07    String versionName = info.versionName;     
  14.  
  15. 08     
  16.  
  17. 09 } catch (NameNotFoundException e) {   
  18.  
  19. 10    // TODO Auto-generated catch block   
  20.  
  21. 11 }  

Java代码

   1. 01 PackageManager manager = this.getPackageManager();   
   2.  
   3. 02 try {     
   4.  
   5. 03     
   6.  
   7. 04    PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);   
   8.  
   9. 05    String packageName = info.packageName;   
  10.  
  11. 06    int versionCode = info.versionCode;   
  12.  
  13. 07    String versionName = info.versionName;     
  14.  
  15. 08     
  16.  
  17. 09 } catch (NameNotFoundException e) {   
  18.  
  19. 10    // TODO Auto-generated catch block   
  20.
分享到:
评论

相关推荐

    Android中获取应用程序(包)的信息 PackageManager的使用

    本文将详细讲解如何利用`PackageManager`来获取Android应用程序(包)的相关信息。 首先,让我们理解`PackageManager`的基本概念。它是Android系统服务的一部分,允许应用程序访问和操作其他已安装的应用程序的元...

    android PackageManager 反射调用相关的类android_dependency.jar

    Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需要用...android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用PackageManager的API

    PackageManager获取安装的应用列表

    本篇文章将深入探讨如何使用`PackageManager`来获取系统应用程序列表,并提供相关代码示例。 首先,我们需要了解`PackageManager`类。它是Android SDK中的一个接口,位于`android.content.pm`包下。通过`Context....

    android PackageManager 反射调用相关的类

    Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需要用...android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用PackageManager的API

    PackageManager实例

    在Android系统中,PackageManager服务是应用开发者和系统交互的核心组件之一。它负责管理设备上的所有应用程序,包括安装、卸载、查询以及获取应用程序的各种信息。本篇将详细讲解`PackageManager`中的`...

    packageManager得到系统应用包名打开应用程序

    在Android开发中,`PackageManager` 是一个至关重要的组件,它提供了获取系统中所有安装应用信息的能力,包括应用的包名、名称、图标等。本文将深入探讨如何利用 `PackageManager` 获取系统应用包名并实现根据包名...

    Android中获取应用程序(包)的信息-PackageManager的使用方法

    ### Android中获取应用程序(包)的信息—PackageManager的使用方法 #### 概述 在Android开发过程中,有时我们需要获取系统中应用程序的信息,例如包名(`packagename`)、标签(`label`)、图标(`icon`)以及占用...

    Laravel开发-packagemanager

    在实际使用中,`packagemanager-master`这个压缩包文件很可能是packagemanager项目的源码仓库。下载并解压后,你可以看到项目的目录结构和源代码,了解其内部实现逻辑。通过阅读和研究,开发者可以学习到如何创建...

    PackageManager获取App基本信息实现Apk导出、分享、卸载

    接下来,可以使用`FileInputStream`和`FileOutputStream`将APK文件复制到目标位置: ```java File apkFile = new File(applicationInfo.publicSourceDir); File exportApkFile = new File("/path/to/your/directory...

    使用PackageManager获得应用信息实例方法

    下面我们将深入探讨如何使用`PackageManager`来获取应用信息,并通过实例代码进行说明。 首先,要获取`PackageManager`的实例,我们通常在Activity或Service中使用`getPackageManager()`方法。例如: ```java ...

    Android_PackageManager分析

    在这个类中,包含了各种与包管理相关的具体实现,如处理APK的安装、卸载、更新等操作。 5. **注册到SystemServer**: `PackageManagerService`实例化后,通过`ServiceManager.addService("package", m)`将其注册到...

    Android中获取应用程序(包)的大小-----PackageManager的使用(二)

    在Android系统中,开发者往往需要了解自己或者用户安装的应用程序所占用的存储空间,以便进行优化或者提供相关信息。本文将详细讲解如何通过Android的`PackageManager`服务来获取应用程序的大小,以及背后的实现原理...

    packageManager得到包名打开应用程序

    可根据包名打开应用程序(不算系统的)MainActivity里面的getLaunchIntentForPackage里面的("com.wandoujia.phoenix2")需要修改,这里我是用的是豌豆荚的包名,如果没装豌豆荚的请安装,或者包名参数改成你自己的...

    PackageManager相关例子

    以下是对"PackageManager相关例子"的详细解释: 1. **安装应用**: 当你需要安装一个APK文件时,可以通过`PackageManager`提供的`installPackage()`方法来完成。首先,你需要获取到`PackageManager`的实例,然后...

    Android实现整理PackageManager获取所有安装程序信息

    本篇文章将深入探讨如何使用 `PackageManager` 获取并整理Android设备上的所有安装程序信息。 首先,`PackageManager` 提供了一个名为 `getInstalledPackages(int flags)` 的方法,用于获取设备上所有安装的应用...

    packagemanager:程序包管理器

    一旦`pip`准备就绪,可以使用以下命令安装`packagemanager`: ```bash pip install packagemanager ``` ### 发展历程 `packagemanager`的发展历程反映了Python生态系统中对更高效包管理工具的需求。随着Python...

    android得到最近使用过的应用

    本文将详细讲解如何在Android中获取最近使用过的应用及其相关的知识点。 首先,Android提供了`UsageStatsManager`类,从Android 5.0(API级别21)开始引入,用于获取应用程序的使用统计信息,包括应用启动时间、...

    android 获取手机中所有安装程序的信息

    在实际开发中,你可能还需要添加更多细节,比如排序应用、过滤系统应用、处理空数据情况,甚至添加点击事件以执行更多的操作。此外,对于UI布局`list_item_app.xml`的设计,你可以根据需求自由定制,确保包含必要的...

Global site tag (gtag.js) - Google Analytics