将解析信息添加到 Robolectric 包管理器

2024-03-18

这个问题与我想做的非常相似:如何使用 Robolectric 隐藏 PackageManager https://stackoverflow.com/questions/12902777/how-can-i-shadow-the-packagemanager-with-robolectric

然而,所有的答案都依赖于 ShadowApplication.setPackageManager()。在2.2中,这个方法似乎不再存在:http://robolectric.org/javadoc/org/robolectric/shadows/ShadowApplication.html http://robolectric.org/javadoc/org/robolectric/shadows/ShadowApplication.html

我尝试获取包管理器并添加解析信息:

    RobolectricPackageManager packageManager = (RobolectricPackageManager) Robolectric.application.getPackageManager();
    Intent intent = new Intent(Intent.ACTION_MAIN,null);
    intent.addCategory(Intent.CATEGORY_HOME);
    ResolveInfo ri = new ResolveInfo();
    ActivityInfo ai = new ActivityInfo();
    ai.packageName = "com.fun.test";
    ri.activityInfo = ai;
    ri.isDefault = true;
    packageManager.addResolveInfoForIntent(intent, ri);

但无济于事。有谁知道如何做到这一点?


Intent.resolveActivity 期望 ResolveInfo 具有以下内容:

if (info != null) {
    return new ComponentName(
            info.activityInfo.applicationInfo.packageName,
            info.activityInfo.name);
}

基于此,Robolectric 2.3 中的以下内容对我有用:

RobolectricPackageManager packageManager = (RobolectricPackageManager) shadowOf(Robolectric.application).getPackageManager();
Intent intent = ... //create an Intent like the one you want to resolve

ResolveInfo info = new ResolveInfo();
info.isDefault = true;

ApplicationInfo applicationInfo = new ApplicationInfo();
applicationInfo.packageName = "com.example";
info.activityInfo = new ActivityInfo();
info.activityInfo.applicationInfo = applicationInfo;
info.activityInfo.name = "Example";

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

将解析信息添加到 Robolectric 包管理器 的相关文章

  • React Native 从 JavaScript 代码内部访问 strings.xml

    有没有办法访问当前值android app src main res values strings xml从 JavaScript 代码内部 我想为每个构建放置不同的端点 URL 但我什至无法检测到反应本机代码内的构建类型 而不必求助于 D
  • Sqlite数据库生命周期?关闭应用程序后它会被删除吗?

    我正在遵循一个简单的教程 该教程创建一个从 SQLiteOpenHelper 扩展的类 并创建一个包含一个表和 5 行的数据库 好的 但我需要更多地了解 android Sqlite 数据库 例如 如果应用程序关闭或手机关机会发生什么 数据
  • android中向sqlite中插入大量数据

    目前 我必须一次向我的 Android 中插入超过 100 亿条数据 然而 内存不足的问题会使程序崩溃 sqlite 插入测试非常简单 只需使用 for 循环生成 sql 插入命令并通过 开始 和 提交 进行包装 private Array
  • 如何在android中获取Camera2 API的当前曝光

    In android hardware Camera旧的 我使用下面的代码获取当前曝光并获取它Camera Camera Parameters param mCamera getParameters currentExposure para
  • 是否可以将数组或对象添加到 Android 上的 SharedPreferences

    我有一个ArrayList具有名称和图标指针的对象 我想将其保存在SharedPreferences 我能怎么做 注意 我不想使用数据库 无论 API 级别如何 请检查SharedPreferences 中的字符串数组和对象数组 http
  • android xamarin 中的 reCaptcha

    我想在 Xamarin android 应用程序中实现验证码 我抓住了这个在 Android 中集成 googles reCaptcha 验证 https www c sharpcorner com article how to integ
  • 从文件夹中删除文件的单元测试方法

    我们有一个方法 它将文件夹名称和天数作为参数 public void Delete string folder int days var files Directory GetFiles folder foreach var file in
  • Android SIP 来电使用带有广播接收器的服务

    大家好 其实我正在尝试创建一个应用程序 支持基于 SIP 通过互联网进行音频呼叫 这里使用本机 sip 我遇到了来电问题 我已经完成了服务的注册部分 但是在接听电话时我无法接听电话 请帮助我 Service file package exa
  • 是否必须删除 Intent extra?

    这可能是一个愚蠢的问题 但是是否有一条规则规定消费活动必须显式删除 Intent 额外内容 或者只有在回收 Intent 对象时才如此 换句话说 如果我总是通过执行以下操作来链接到下一个活动 Intent i new Intent MyCu
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 发布android后更改应用内购买项目的价格

    在 Google Play 上发布后 是否可以更改应用内购买商品的价格 我假设该应用程序也已发布 完整的在线文档位于http developer android com http developer android com也http sup
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • Google 云端硬盘身份验证异常 - 需要许可吗? (v2)

    我一直在尝试将 Google Drive v2 添加到我的 Android 应用程序中 但无法获得授权 我收到 UserRecoverableAuthIOException 并显示消息 NeedPermission 我感觉 Google A
  • 错误:在根项目“projectName”中找不到项目“app”

    我有一个在 Eclipse 中开发的旧应用程序 现在尝试将其迁移到 Android Studio 我更新了库并遵循了基本步骤 现在 我收到此错误 Error Project app not found in root project pro
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • 将 Intent 包装在 LabeledIntent 中以用于显示目的

    要求 我的应用程序中有一个 共享 按钮 我需要通过 Facebook 分享 我需要选择是否安装原生 Facebook 应用程序 我们的决定是 如果未安装该应用程序 则将用户发送到 facebook com 进行分享 当前状态 我可以检测何时
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 强制 Listview 不重复使用视图(复选框)

    我做了一个定制Listview 没有覆盖getView 方法 Listview 中的每个项目都具有以下布局 联系布局 xml

随机推荐

  • 如何使用Bitbucket作为maven远程仓库?

    我们计划使用 bitbucket 作为源代码存储库以及基于 Maven 的项目的远程存储库 我在 bitbucket 上创建了一个存储库 如下所示 https bitbucket org mycompany maven repository
  • matlab - 访问特定工作区中的变量

    我需要类似的东西evalin 但是原来的evalinMatlab 不能递归使用 例如 我有函数 f0 它调用另外 2 个函数 f11 和 f12 function f0 v1 v2 deal 1 1 f11 f12 disp v1 end
  • 错误:在插件“@sanity/base”中找不到“sanity.json”文件

    我是 sanity 新手 并试图按照 youtube 上的教程进行操作 但当我运行 sanity start 时 我收到此错误 谁能给我建议我应该做什么 理智错误 https i stack imgur com c7UnF png 就我而言
  • 如何将 Class 文件的功能链接到 DocumentClass 和 AS3 中的 Movieclips?

    我在从时间轴代码切换到 OOP 文档类时遇到问题 我成功地用 AS3 按时构建了 Fla 没有任何问题 但在面向对象编程时完全无能为力 有人告诉我场景不好 我应该坚持将场景保存为影片剪辑 我的情况是这样的 我有 8 页 PSD 文件 我将每
  • 两个数据集或数组之间的相似性

    假设我有一个如下所示的数据集 A 1 B 3 C 6 D 6 我还有其他集合的列表来比较我的特定集合 A 1 B 3 C 6 D 6 A 2 B 3 C 6 D 6 A 99 B 3 C 6 D 6 A 5 B 1 C 6 D 9 A 4
  • 为什么默认情况下允许进程外服务器“本地启动”,但不允许“本地激活”?

    我当前需要创建一个 COM 对象 该对象由 ASP NET 处理程序内部的进程外 COM 服务器提供服务 因此 每次部署 COM 服务器时 我都必须启动 DCOM Config 并更改安全设置 具体来说 我需要确保本地用户 ASPNET 允
  • Python:无法将浮点 NaN 转换为整数

    我应用返回浮动的移动平均逻辑 我先将该 float 转换为 int 然后再使用它在 OpenCV 中绘制线条 但出现以下错误 ValueError cannot convert float NaN to integer 示例代码 def m
  • API 设计:公开 XML 或对象 #2

    我最近问了这个问题 公开 XML 或对象 https stackoverflow com questions 368521 api design expose xml or objects 感谢大家的回复 有一点需要澄清 API 始终可以远
  • 如何在 PostgreSQL 中以事务方式插入 max(order_field) + 1 行

    我需要在 PostgreSQL 表中插入一行 其中有一列包含表行子集上同一列的最大值 1 该列用于对该子集中的行进行排序 我正在尝试更新插入后触发器中的列值 但我在不同行中获取该列的重复值 在短时间内进行大量插入的并发环境中 避免子集中排序
  • 如何从 SSL 证书中提取密钥?

    我有一个在以下网站购买的 SSL 证书 pem crt der格式 我想知道如何从证书中获取密钥文件 有什么办法可以做到这一点吗 您可以提取公钥 这的用处有限 也许您将在其他不使用证书的工具 例如 SSH 或 PGP 中使用相同的密钥 使用
  • JTable 的 ScrollPane 行为异常

    我有一个JPanel组件与JTable在它里面 当我运行下面编写的代码时 表格会正确呈现和更新 一旦我尝试使用scrollPane方法 该表根本不呈现 谁能向我解释这是为什么 private static class GameHistory
  • Java中有没有内置的方法来增加字体大小?

    Java中有没有内置的方法来增加字体大小 The Font http java sun com javase 6 docs api java awt Font html类允许您指定字体大小 因此 要创建字体 您可以执行以下操作 Font f
  • 当行突出显示时设置 cellrenderertext 前景色

    当我有一个gtk CellRendererText 我可以关联它的foreground用树存储的一列着色 并设置foreground set属性设置为 True 以更改该列中文本的颜色 但是 当选择具有彩色列的行时 其颜色会消失 并且与任何
  • getContext().getSystemService 错误

    所以我只是想在我的 getView 函数中膨胀一个视图 而 getContext 由于某种原因说它是未定义的 package com MTSUAndroid import com MTSUAndroid Alarm Settings Eff
  • 是否有类似于 C sscanf 的 VB6 函数?

    我正在尝试读取由以下形式的文本行组成的文件 first value 1352 2 second value 12 third value 32323 first value 1233 2 second value 22 third valu
  • 关闭 Numba 中的列表反射

    我正在尝试使用 Numba 加速我的代码 我传递给函数的参数之一是可变列表列表 当我尝试更改子列表之一时 出现此错误 在 nopython 模式管道中失败 步骤 nopython 模式后端 无法反映反射容器的元素 反射列表 反射列表 int
  • 在 TFS API 中,如何获取给定测试的完整类名?

    我有一个ITestCaseResult http msdn microsoft com en us library microsoft teamfoundation testmanagement client itestcaseresult
  • postgresql 多个子查询

    我手头有一项任务 要求我返回一个学生的详细信息 该学生参加了一位姓霍夫曼的老师所教的课程 但我陷入了困境 SELECT FROM Public Class WHERE tid SELECT tid FROM Public Tutor WHE
  • 在 MVC Web 应用程序中访问 profile.newproperty

    我最近问了这个问题如何保留匿名用户选择 例如 主题选择 https stackoverflow com questions 11706349 how to persist anon user selection ex theme selec
  • 将解析信息添加到 Robolectric 包管理器

    这个问题与我想做的非常相似 如何使用 Robolectric 隐藏 PackageManager https stackoverflow com questions 12902777 how can i shadow the package