`
firefox7
  • 浏览: 25800 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

关于getInstalledPackages的参数的问题

 
阅读更多

我遇到的问题:

G9真机上测试,在onCreate的最后添加getPackageManager().getInstalledPackages(0)可以正确得到已安装程序,而getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES)却会报错如下:
01-06 11:56:55.028: ERROR/JavaBinder(29183): !!! FAILED BINDER TRANSACTION !!!
这是什么原因呢?

 

获取系统内Applications的基本信息可以使用以下这个方法。
getPackageManager().getInstalledPackages(0)
但是这个参数里面的0是什么意思呢?
得到activities应该是使用这个参数PackageManager.GET_ACTIVITIES吧?
而且PackageManager.GET_ACTIVITIES= 0x00000001的哇,而上面为什么用0喃?


答:

里面的flag参数,只是一个过滤标志,0 是过滤permission,根据自己的需求设置flag,都是合理的。

这些flag没有仔细研究过
我在我的手机上测试 PackageManager.GET_ACTIVITIES  和 0 的结果一样都是 一样的,看看系统的那个appmanager,他不是这么获得安装的apk的,用的是getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES)
因为有些apk可能被删掉 但是数据还在 所以用GET_UNINSTALLED_PACKAGES 这个flag

0
0
分享到:
评论

相关推荐

    packageManager得到包名打开应用程序

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

    android获取程序列表

    这里,`getInstalledPackages(0)`参数为0表示获取所有应用,包括系统应用。`MyAppAdapter`的构造函数通常会接收上下文和数据源作为参数,然后在适配器内部处理数据绑定。 总的来说,获取Android程序列表涉及到的...

    Android高级应用源码-安卓调用系统闹钟及获取所有软件信息.rar

    它接受四个参数:触发时间、间隔周期、`PendingIntent`和触发类型。 二、获取所有软件信息 1. **Package Manager**: `PackageManager`是Android系统服务,提供查询、安装、卸载应用程序包的能力。通过`...

    Android获取Android系统程序信息.zip

    `flags`参数可以设置为`GET_UNINSTALLED_PACKAGES`以包含已卸载但仍然存在的应用信息。 4. 获取特定应用信息: - 通过`getPackageInfo(String packageName, int flags)`方法,可以获取指定包名的应用的`...

    anroid获取应用程序包信息

    这里的`flags`参数可以设置为0,表示只获取基本信息。 除了包名,`PackageInfo`对象还包含了其他有用的信息,如: - `versionCode`: 应用程序的版本码,整数值,每次发布新版本时都会递增。 - `versionName`: 可读...

    Android 获取已安装应用

    它是Android系统提供的一个接口,用于获取关于安装在设备上的应用及其元数据的信息。通过`getPackageManager()`方法可以从Context对象中获取到`PackageManager`实例。 接下来,我们可以调用`PackageManager`的`...

    Android获取Android系统程序信息.zip源码资源下载

    如果只想获取用户安装的应用,可以在调用`getInstalledPackages()`时传入`PackageManager.GET_UNINSTALLED_PACKAGES`参数。要区分系统应用,可以检查`packageInfo.flags`是否包含`ApplicationInfo.FLAG_SYSTEM`标志...

    获取本地已安装apk

    2. **`getInstalledPackages(int flags)`方法**:该方法用于获取设备上所有已安装的应用程序信息,参数`flags`用于指定返回哪些类型的应用信息。如果参数为`0`,则表示返回所有应用的信息;如果设置为`...

    获取android设备已安装应用信息(包名、图标、应用名)

    这个方法需要一个参数,表示要获取的应用类型。通常,我们传入`PackageManager.GET_META_DATA`来获取额外的信息。 ```java List<PackageInfo> packages = packageManager.getInstalledPackages(PackageManager.GET...

    Android应用源码之获取系统程序信息.zip

    开发者可以使用`PackageManager`类来与这个服务交互,获取关于安装在设备上的应用程序的各种信息。以下是一些关键方法: 1. **`getInstalledPackages()`**:这是获取所有已安装应用的主要方法。它返回一个`...

    android 获取手机里安装的app信息列表

    在实际开发中,可能还需要处理不同Android版本之间的兼容性问题,因为某些API在不同的Android版本中可能存在差异或已被废弃。确保使用`Build.VERSION.SDK_INT`检查当前设备的Android版本,并适当地选择API。 以上...

    Android开发中判断手机是否安装了QQ或者微信

    需要注意的是,`getInstalledPackages(0)`参数为0表示只获取可运行的应用,如果你还想知道不可运行的系统应用(例如,被用户禁用了的应用),可以传入`PackageManager.GET_DISABLED_COMPONENTS`标志。 为了提高效率...

    Android代码-获取系统程序信息.zip

    `flags`参数可以控制返回信息的详细程度,例如只返回基本信息或包含权限信息等。 2. **获取特定包名的应用信息**: 如果你知道应用的包名,可以使用`getApplicationInfo(String packageName, int flags)`方法来...

    安卓调用系统闹钟及获取所有软件信息_20140702153505.zip

    `flags`参数可以控制返回的详细程度,如`GET_DISABLED_COMPONENTS`表示包括禁用的应用。 3. **解析PackageInfo对象**:`getInstalledPackages()`方法返回一个`PackageInfo`对象数组,每个`PackageInfo`对象代表一个...

    安卓调用系统闹钟及获取所有软件信息_android源码.zip

    1. 获取AlarmManager服务:通过Context的getSystemService()方法,传入AlarmService参数来获取AlarmManager实例。 2. 创建Intent:定义一个意图(Intent),指定要唤醒的服务或BroadcastReceiver。 3. 设置...

    Android应用源码之获取手机应用信息.zip

    这个压缩包文件“Android应用源码之获取手机应用信息.zip”显然是一个关于如何在Android应用中实现这一功能的源代码示例。下面我们将深入探讨Android应用如何获取手机上的应用信息。 在Android系统中,我们可以利用...

    安卓Andriod源码——获取手机应用信息.zip

    6. **遍历所有应用**: 要获取设备上所有应用的信息,可以迭代`PackageManager`的`getInstalledPackages(int flags)`方法返回的列表。记得根据需要设置适当的`flags`,比如`GET_UNINSTALLED_PACKAGES`可以包括未显示...

    android获取手机已安装apk的信息异步操作

    创建一个继承自`AsyncTask`的类,例如`ApkInfoTask`,其泛型参数为输入类型(通常为空)、进度类型(可选,此处忽略)和结果类型(`List<PackageInfo>`)。重写`doInBackground()`方法,在其中执行获取APK信息的...

    PackageManager获取安装的应用列表

    `flags`参数可以设置为不同的值,例如`GET_UNINSTALLED_PACKAGES`来包含未启动过的应用,或者`GET_DISABLED_COMPONENTS`来包含被禁用的组件。 以下是一个简单的代码示例,展示如何获取并打印所有安装的应用程序信息...

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

    在这里,参数 `PackageManager.GET_META_DATA` 是一个标志,表示我们还希望获取应用的元数据信息。 3. 遍历应用列表并提取包名:通过遍历 `PackageInfo` 列表,我们可以获取每个应用的包名。 ```java for ...

Global site tag (gtag.js) - Google Analytics