getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES) 返回 null

2024-03-04

如果我打电话

    PackageManager pm = getPackageManager () ;
    List<PackageInfo> pis = pm.getInstalledPackages (PackageManager.GET_PROVIDERS) ;

我得到了已安装软件包的列表,包括它们声明的任何提供程序(即 pis[i].providers 可能为非空)。

但是,如果我在标志中包含 PackageManager.GET_ACITIVITIES,如

    PackageManager pm = getPackageManager () ;
    List<PackageInfo> pis = pm.getInstalledPackages (PackageManager.GET_ACTIVITIES | PackageManager.GET_PROVIDERS) ;

我希望获得已安装软件包的“相同”列表,但 pis[i].activities 也为非空。但我没有,我得到一个空列表。

在标志中包含 PackageManager.GET_ACTIVITES 是否有什么特别之处?文档 http://developer.android.com/reference/android/content/pm/PackageManager.html#getInstalledApplications(int)?

我当前的解决方法是将 PackageManager.GET_ACTIVITIES 排除在标志之外,然后按如下方式循环返回的列表:

    for (PackageInfo pi : pis) {
        try {
            PackageInfo tmp = pm.getPackageInfo (pi.packageName, PackageManager.GET_ACTIVITIES) ;
            pi.activities = tmp.activities ;
            }
        catch (NameNotFoundException e) {
            Log.e (TAG, e.getMessage ()) ;
            }

但这似乎是一个真正的拼凑。

我能找到的唯一提及 getInstalledPackages (PackageManager.GET_ACTIVITIES) 返回空列表的是here https://stackoverflow.com/questions/3455781/packagemanager-getinstalledpackages-returns-empty-list,但这种情况下的问题似乎是在主应用程序线程之外调用 getInstalledPackages() ,而我的情况并非如此。

附注这是 Gingerbread 的 .602 VZW 版本,以防万一


我遇到了同样的问题并找到了更好的解决方法:

public void listAllActivities() throws NameNotFoundException
{
    List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);
    for(PackageInfo pack : packages)
    {
        ActivityInfo[] activityInfo = getPackageManager().getPackageInfo(pack.packageName, PackageManager.GET_ACTIVITIES).activities;
        Log.i("Pranay", pack.packageName + " has total " + ((activityInfo==null)?0:activityInfo.length) + " activities");
        if(activityInfo!=null)
        {
            for(int i=0; i<activityInfo.length; i++)
            {
                Log.i("PC", pack.packageName + " ::: " + activityInfo[i].name);
            }
        }
    }
}

请注意,我需要查询PackageManager两次。一旦使用getPackageManager().getInstalledPackages(...)并再次使用getPackageManager().getPackageInfo(...)

我希望它有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES) 返回 null 的相关文章

  • 如何在红米手机上通过应用程序图标显示徽章数量?

    我可以使用以下代码在三星设备上使用应用程序图标显示徽章计数
  • GCM 通知的自定义 UI

    In GCM Docs http developer android com google gcm gcm html其给定 它不提供任何内置用户界面或其他处理 消息数据 GCM 只是将收到的原始消息数据直接传递给 Android 应用程序
  • 不支持动态值作为注释中的属性 - AspectJ Android [AOP Android]

    我正在使用自定义注释来记录用户单击的 id 但我收到一个错误 属性值必须是常量 我的代码片段如下 mAssetId Asset getContentId TrackEvent track event ArrayParams Params k
  • Android,无法从谷歌API获取天气

    以下代码之前运行良好 class RetreiveWeatherTask extends AsyncTask
  • 如何以编程方式从 mipmap 文件夹加载图像? [复制]

    这个问题在这里已经有答案了 如何从 加载图像mipmap以编程方式保存文件夹 与可绘制对象一样 img setImageResource imageId 我使用的是Android Studio 1 2 1 In 安卓工作室我们有mipmap
  • 找不到 RecyclerView 类 android.support.v7.recyclerview.R$styleable

    我在我的应用程序上使用 RecyclerView 但在运行时应用程序崩溃并且我的 logcat 读取 java lang RuntimeException Unable to start activity ComponentInfo com
  • 要在进程中运行 dex,Gradle 守护进程需要更大的堆。目前有 910 MB

    实际上主要错误是 java exe完成非零退出值 1 首先我告诉你安装 studio 后遇到的每个问题 三天前 我刚刚安装了 android studio 并创建了新项目 1 首先它抛出错误 插件太旧 请更新到更新的版本 在谷歌上搜索后我改
  • Android:每秒更新蓝牙 RSSI

    我试图每秒显示蓝牙信号强度 RSSI Timer 来自检测到的设备 但我无法调用onRecive 多次因为接收器生命周期 http developer android com reference android content Broadc
  • GSON:自定义对象反序列化

    好吧 我编辑了这个问题 因为它不够清楚 Edit 2 更新了 JSON 文件 我在 Android 应用程序中使用 GSON 我需要解析来自服务器的 JSON 文件 而且有点太复杂了 我不想让我的对象结构太重 所以我想简化内容 所以我的对象
  • 如何设置上拉刷新SwipeRefreshLayout

    我看到很多 ListView 下拉刷新的库 但是当从上到下拉动时它们是工作的 但是从下到上拉动时我如何刷新 我可以用这个做吗滑动刷新布局 http developer android com reference android suppor
  • Android 视图上的动态气泡

    任何人都可以如何在Android布局上制作可点击的动态气泡 我的设计师对屏幕的想法如下 我的图像中所有气泡都是分配给用户的一组任务 气泡的标签根据任务而变化 1 1 根据我的项目要求 颜色和半径将根据 api 响应而变化 您能建议任何演示或
  • Android 如何从我的应用程序使用 SD 卡中的文件路径预览图像

    文件存在于sdcard image jpg我想创建我自己的应用程序 活动 按下按钮时 需要使用内置图像查看器显示存储在 SD 卡中的图像 按图像查看器中的后退按钮后 它应该返回到我正在运行的应用程序 需要一些帮助 您可以为此创建一个具有适当
  • 未调用内容提供商 query() (Android TV)

    据报道 我正在尝试将我的应用程序纳入 Android TV 全局搜索中文档 http developer android com training tv discovery searchable html我必须创建以下内容 内容提供商 可搜
  • 上次更新arm64-v8a后,模拟器在M1 Mac上显示离线

    昨天模拟器运行得很好 系统镜像为arm64 v8a 我不太记得工作系统映像的版本名称 但是昨天我接受了 ARM 64 系统映像的更新 版本名称是 S 我可以从 AVD 管理器启动模拟器 当我按 运行应用程序 按钮时模拟器也会启动 但是 该应
  • 如何为工具栏上的溢出菜单中的菜单项设置字体

    我想更改项目的默认字体溢出菜单并设置自定义字体 我尝试添加一个工厂LayoutInflater并在onCreateView 方法我改变了TextView的字体 但这没有用 这是代码 在 onCreateOptionsMenu 内 getLa
  • 如何在Webview中保存用户名和密码

    目前 我还在学习Android开发的过程中 所以如果我的这个问题对你来说不太容易理解 请原谅 我创建了一个 Android 应用程序 它使用 RecyclerView 显示一组列表 当用户单击列表中的每个名称时 它会将它们重定向到一组不同的
  • Android 图标与徽标

    The
  • 随着速度变化,速度表针规绕其中心旋转

    Hi all 我编写了一个应用程序 其中有一个速度计 其指针垂直设置为 90 度 我试图以每秒变化的速度绕其中心旋转指针 我在文本视图中显示变化的速度 从 0 到 120 随机 我正在从远程服务获取速度并显示在文本视图中 因此 当速度发生变
  • 如何在对话框中配置自定义按钮?

    这里我有一个自定义对话框 里面有背景 2 ImageButton 问题是 当我尝试为该按钮设置 onclick 侦听器时 程序将返回 NullPointerException 我不知道为什么会发生这种情况 无论如何如何将操作分配给对话框内的
  • Android进程调度

    我试图更好地理解 以便在创建 Android 应用程序 服务时确定潜在的互操作性问题对可靠性的影响 我想弄清楚进程优先级是如何确定的 服务和活动之间优先级的差异以及调度程序是否以不同方式对待它们的优先级 基本上 我试图深入了解某个活动或服务

随机推荐

  • 我如何使用 Passport-local.js 存储其他表单字段

    我正在研究 node passport js 身份验证 我制作了一个简单的登录 注册应用程序 它工作正常 但是它只存储用户名和密码 如何通过具有工作登录护照身份验证的 Signup html 页面将其他表单字段 例如电话号码 电子邮件 爱好
  • 检查后台限制数据是否开启?

    我有一个在主线程上运行而不是在后台运行的服务 在服务中 我正在通过广播接收器检查网络连接 当我启用限制数据已启用在 设置 中 广播接收器可以很好地捕捉意图 但我的应用程序已禁用互联网连接 移动数据 尽管它在我的设备上 我见过这个问题 htt
  • 如何测试 Spark RDD

    我不确定我们是否可以在 Spark 中测试 RDD 我发现一篇文章说模拟 RDD 不是一个好主意 是否有其他方法或最佳实践来测试 RDD 感谢您提出这个悬而未决的问题 出于某种原因 当谈到 Spark 时 每个人都过于专注于分析 以至于忘记
  • 此信封实现是否正确使用 C++11 原子?

    我编写了一个简单的 信封 类 以确保我正确理解 C 11 原子语义 我有一个标头和一个有效负载 编写器清除标头 填充有效负载 然后用递增的整数填充标头 这个想法是 读取器然后可以读取标头 memcpy 出有效负载 再次读取标头 如果标头相同
  • B-Prolog 中带有累加器的嵌套循环

    B Prolog 具有逻辑循环 例如 我们可以这样计算 1 2 3 的和 test1 foreach A in 1 3 ac Sa 0 Sa 1 is Sa 0 A writeln sa Sa test1 test1 sa 6 yes 但是
  • Android 初始化 Visualizer 时出现错误代码 -3

    初始化时出现此错误Visualizer visualizer new Visualizer mediaPlayer getAudioSessionId lt 错误 无法初始化 Visualizer 引擎 错误 3 java lang Run
  • Twitter bootstrap:跨浏览器圆角和渐变?

    有什么方法可以添加 Twitter Bootstrap 跨浏览器对圆角和 CSS 渐变的支持 阅读 愚蠢的 IE 7 支持 我会使用 CSSPIE http css3pie com http css3pie com 这是一个 htc 文件
  • 有 XWalkView webviewclient 吗?

    我正在尝试使用XWalkView作为我的 Android 应用程序中的 webview 替代品 我注意到没有setWebViewClient方法上XWalkView目的 问题是我想检查页面何时完成 onPageFinished 以及资源加载
  • 在同一服务器上部署 ASP.net Ajax 1.0 和 3.5 Web 应用程序

    我们有一个生产服务器 其中运行 Ajax 1 0 的 ASP net 2 0 应用程序和相应的工具包 工具包版本 1 0 20229 我被要求使用 ASP net 3 5 移动另一个应用程序构建 该应用程序也利用了最新的 ASP NET A
  • 如何计算 NSArray 中的重复值?

    我的价值NSArray包括重复项 我找到了重复项 但现在我怎样才能找到没有 他们重复 您可以使用NSCountedSet http developer apple com library ios documentation Cocoa Re
  • pandas 过滤和比较日期

    我有一个 sql 文件 其中包含我读入 pandas 的数据 df pandas read sql Database count details con engine index col id parse dates newest avai
  • 雪花不旋转

    我需要转置一个表 其中column1 是实体的名称 column2 到column366 是一年中包含美元金额的日期 表 select语句 输出结果都给定了 以下 问题 此语法要求我创建一个逗号分隔的列列表 基本上是 365 个日期 并在
  • 找不到模块:错误:无法解析“sass-loader”

    刚接触 webpack 尝试让 sass loader 与我的 React 项目配合良好 已遵循教程 配置似乎正确 但结果始终是 无法解析 sass loader 我怀疑这是一些明显的错误 但我还没有通过任何搜索或谷歌搜索找到它 任何帮助表
  • 如何使用 jQuery (IE) 删除禁用属性[重复]

    这个问题在这里已经有答案了 我面临的情况是 我必须使用禁用属性来停用我不希望用户编辑的所有输入
  • iOS 7 UIImagePickerController 有黑色预览

    我有一个使用 sourceType 相机调用的 UIImagePickerController 80 的时间我得到黑色预览 如果我等待 假设大约 30 秒 我会得到一个很好的预览 并且在大约 50 的时间内它会很好 然后它可能会再次中断 所
  • 从 Private Repo 下载 Git 存档 tarball 时遇到问题

    我需要能够在特定标签下载我们的应用程序 但我无法为此找到可行的解决方案 基于 git 标签下载 tarball 似乎很有前途 但我无法使用 Curl 让它工作 我尝试了以下方法 但我得到的只是 github 404 页面的源代码 curl
  • C++ 使用计算参数调用超类构造函数

    也许这非常简单 但是有人可以告诉我如何使用子类构造函数中计算的参数来调用超类构造函数吗 像这样的东西 class A A int i int j class B A B int i B B int i int complex calcula
  • 如何在heroku应用程序中使用npm pdf图像包

    我正在尝试使用 npm 包 pdf image https www npmjs com package pdf image https www npmjs com package pdf image 对于部署在 heroku 上的应用程序
  • 设置minimumScaleFactor时UILabel获取当前比例因子?

    我有一个UILabel并设置 let label UILabel label minimumScaleFactor 10 25 设置标签文本后 我想知道当前的比例因子是多少 我怎样才能做到这一点 你还需要知道原始字体大小是多少 但我想你可以
  • getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES) 返回 null

    如果我打电话 PackageManager pm getPackageManager List