- 浏览: 383117 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
lingmzai:
你好,有两个问题请教:1. convert命令能将png格式转 ...
Linux之convert命令 -
ykb19891230:
...
将源码项目工程引入eclipse,并在linux下编译源码 -
spdx4046:
我发现用数组和不用数组的差别很大很大哎!
比如: ...
ByteBuffer笔记 -
JavaJ2me:
谢谢,,结构分析的很细,,public Object Load ...
Java中的反射机制 -
zhucezhenmafan:
好用!
解决adb shell 找不到设备的问题
来源:http://blog.csdn.net/wal812834184/archive/2010/10/20/5953906.aspx
PackageManager()的使用列举相关的事件
文章分类:移动开发
看来这个东西应该专门开一个帖子了,发现这个包里面的东西太多,以前写的很零碎不容易找
查询系统使用的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.
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.
发表评论
-
解决32位Linux找不到adb
2012-08-18 15:30 1525sudo apt-get install ia32-libs -
Code Review中的几个提示
2012-06-11 13:18 1235$转载$ 作者:陈皓 Code Review应该是软件工程 ... -
Android 远程Debug的方法和步骤
2012-04-10 10:40 13581.连接上设备后,打开要debug的应用,打开DDMS,在De ... -
Android中的那些sql语句
2012-02-29 14:30 1319Uri baseUri; if (mC ... -
Ubuntu10.10搭建Android开发环境
2012-01-13 10:39 1238Installing the JDK The Sun JDK ... -
最近习惯用txt写日志了,呵呵
2011-07-20 23:00 122好长时间不怎么来,javaeye变化挺大啊 -
ServiceConnection
2011-06-17 17:46 1873ServiceConnection android.cont ... -
Android之Intent
2011-06-16 23:51 1036Intent 1.构造方法 1.Intent(Contex ... -
requestWindowFeature
2011-04-12 14:35 1235一、枚举常量 1.DEFAULT_FEATURES:系统默认 ... -
32位机器Ubuntu系统编译2.2以上源码(默认需要64位机)
2011-04-11 11:44 1426默认下载下来的froyo2.2版本代码,是64位配置的。需要稍 ... -
Android的多分辨率支持
2011-03-28 17:02 2716在设计之初,Android系统 ... -
得到Android系统预置软件的apk!
2011-02-25 16:39 1333先 adb shell 再 cd /system/app 就看 ... -
android图片资源转换
2011-02-18 10:14 1829android在处理一写图片资源的时候,会进行一些类型的转换, ... -
代码3
2011-02-11 16:13 1126ArrayList<ColumnInfo> ... -
Android之IntentService
2011-02-09 17:29 1661参考:http://www.wheremylife.com/h ... -
Android之Animation
2011-02-09 15:02 896先小参考下别人的http://blog.sina.com.cn ... -
代码2
2011-02-09 10:55 1505public abstract void onItemClic ... -
Android VS iOS:2011年的死亡竞技赛
2011-01-28 14:54 1014Android和iOS之间的竞争在 ... -
Android 权限列表permission说明
2011-01-20 15:26 1840public static final String B ... -
Windows下git下载Android源码
2011-01-16 20:06 23061.到这里先下载cygwin,http://www.cygwi ...
相关推荐
本文将详细讲解如何利用`PackageManager`来获取Android应用程序(包)的相关信息。 首先,让我们理解`PackageManager`的基本概念。它是Android系统服务的一部分,允许应用程序访问和操作其他已安装的应用程序的元...
Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需要用...android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用PackageManager的API
本篇文章将深入探讨如何使用`PackageManager`来获取系统应用程序列表,并提供相关代码示例。 首先,我们需要了解`PackageManager`类。它是Android SDK中的一个接口,位于`android.content.pm`包下。通过`Context....
Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需要用...android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用PackageManager的API
在Android系统中,PackageManager服务是应用开发者和系统交互的核心组件之一。它负责管理设备上的所有应用程序,包括安装、卸载、查询以及获取应用程序的各种信息。本篇将详细讲解`PackageManager`中的`...
在Android开发中,`PackageManager` 是一个至关重要的组件,它提供了获取系统中所有安装应用信息的能力,包括应用的包名、名称、图标等。本文将深入探讨如何利用 `PackageManager` 获取系统应用包名并实现根据包名...
### Android中获取应用程序(包)的信息—PackageManager的使用方法 #### 概述 在Android开发过程中,有时我们需要获取系统中应用程序的信息,例如包名(`packagename`)、标签(`label`)、图标(`icon`)以及占用...
在实际使用中,`packagemanager-master`这个压缩包文件很可能是packagemanager项目的源码仓库。下载并解压后,你可以看到项目的目录结构和源代码,了解其内部实现逻辑。通过阅读和研究,开发者可以学习到如何创建...
接下来,可以使用`FileInputStream`和`FileOutputStream`将APK文件复制到目标位置: ```java File apkFile = new File(applicationInfo.publicSourceDir); File exportApkFile = new File("/path/to/your/directory...
下面我们将深入探讨如何使用`PackageManager`来获取应用信息,并通过实例代码进行说明。 首先,要获取`PackageManager`的实例,我们通常在Activity或Service中使用`getPackageManager()`方法。例如: ```java ...
在这个类中,包含了各种与包管理相关的具体实现,如处理APK的安装、卸载、更新等操作。 5. **注册到SystemServer**: `PackageManagerService`实例化后,通过`ServiceManager.addService("package", m)`将其注册到...
在Android系统中,开发者往往需要了解自己或者用户安装的应用程序所占用的存储空间,以便进行优化或者提供相关信息。本文将详细讲解如何通过Android的`PackageManager`服务来获取应用程序的大小,以及背后的实现原理...
可根据包名打开应用程序(不算系统的)MainActivity里面的getLaunchIntentForPackage里面的("com.wandoujia.phoenix2")需要修改,这里我是用的是豌豆荚的包名,如果没装豌豆荚的请安装,或者包名参数改成你自己的...
以下是对"PackageManager相关例子"的详细解释: 1. **安装应用**: 当你需要安装一个APK文件时,可以通过`PackageManager`提供的`installPackage()`方法来完成。首先,你需要获取到`PackageManager`的实例,然后...
本篇文章将深入探讨如何使用 `PackageManager` 获取并整理Android设备上的所有安装程序信息。 首先,`PackageManager` 提供了一个名为 `getInstalledPackages(int flags)` 的方法,用于获取设备上所有安装的应用...
一旦`pip`准备就绪,可以使用以下命令安装`packagemanager`: ```bash pip install packagemanager ``` ### 发展历程 `packagemanager`的发展历程反映了Python生态系统中对更高效包管理工具的需求。随着Python...
本文将详细讲解如何在Android中获取最近使用过的应用及其相关的知识点。 首先,Android提供了`UsageStatsManager`类,从Android 5.0(API级别21)开始引入,用于获取应用程序的使用统计信息,包括应用启动时间、...
在实际开发中,你可能还需要添加更多细节,比如排序应用、过滤系统应用、处理空数据情况,甚至添加点击事件以执行更多的操作。此外,对于UI布局`list_item_app.xml`的设计,你可以根据需求自由定制,确保包含必要的...