针对特定包的自定义意图

2024-01-25

假设我的应用程序是“A”,我使用应用程序“A”中的自定义意图启动应用程序“B”的活动。它工作得很好,正如我所希望的那样。我使用的代码是在应用程序“B”的清单中:

<activity
        android:name=".mysecondAct"
        android:label="@string/title_activity_second" >
        <intent-filter>
            <action android:name="com.example.intent.action.Dream" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

在应用程序“A”的活动中,我启动应用程序“B”,

Intent i =new Intent("com.example.intent.action.Dream");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

现在,如何指定应将意图发送到的特定包,以便只有该应用程序接收意图并启动活动?原因是,我有一个包列表,用户选择要调用哪个包。


使用 ComponentName 类,如下所示:

Intent intent = new Intent();

intent.setComponent(new ComponentName("com.example1", "com.example1.MyExampleActivity1"));

startActivity(intent);

请注意,第一个参数不是类的包名;它是应用程序的包名称——该应用程序的AndroidManifest.xml 中的manifest 元素的package 属性。

如果您知道要启动的活动的名称(而不是班级),那么您可以执行以下操作:

Class<?> claz = null;

if(StringClassname != null) {

    try {

        claz = Class.forName(StringClassname );

    } catch (ClassNotFoundException e) {

        e.printStackTrace();
    }

}

Intent intent = new Intent(this, claz);

startActivity(intent);

而且,如果您甚至不知道活动名称和相应的类,那么我猜它成为使用广播的候选者,即从您的 AppA 开始,您应该进行广播..并且在 AppB、AppC 等中有广播接收器以及相应的广播接收器过滤器..

编辑:鉴于您只知道包名称和意图操作名称,请尝试像这样创建您的意图:

Intent i = new Intent();

i.setAction("com.example.intent.action.Dream");

i.setPackage(packageName);

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

针对特定包的自定义意图 的相关文章

随机推荐

  • JavaFx 端口 TextField 问题 - Android 键盘无法运行

    我开发了一个简单的 javafx 应用程序以移植到 Android 环境中 但是我无法在 TextField 中键入任何字符 我猜这是一个错误 如何解决这个问题 Galaxy S5 android 5 0 1 上不存在此问题 但在 Gala
  • ASP.NET MVC 5 表单验证和错误处理

    尝试在简单的联系表单上实现数据验证和错误处理 当我添加支票时ModelState IsValid我现在处于先有鸡还是先有蛋的境地 我看过其他类似的问题 但我只是不明白 从 Web 表单迁移到 MVC 并陷入困境 尝试根据发生的情况 成功 错
  • brew cask 安装 kdiff3 失败

    brew cask install kdiff3 Error Cask kdiff3 is unavailable No Cask with this name exists brew install kdiff3 Error No ava
  • 作为 HttpSession 属性值存储的 Hibernate 实体

    我正在处理一个遗留的 Java 应用程序 它有一个庞大且相当混乱的代码库 有一个相当标准的 用户 对象 在请求之间存储在 HttpSession 中 因此 servlet 在顶部执行类似的操作 HttpSession session req
  • 对于哪些 3xx HTTP 代码,Location 标头是必需的?

    RFC 2616 http www w3 org Protocols rfc2616 rfc2616 sec14 html sec14 30定义了Location标题为 Location 响应头字段用于将接收者重定向到 Request UR
  • 使用MVC 5的身份,登录后无法立即获取用户名

    我正在尝试使用 MVC 5 的身份解决方案 但陷入了一些应该非常简单的事情 我希望 AccountController 上的登录方法在验证模型后立即获取登录用户的名称 并且我不想从模型中使用它 这是我的一段代码 var result awa
  • “/usr/lib/libstdc .so.6:版本‘GLIBCXX_3.4.15’未找到”是什么意思,如何修复它?

    我是编译库的新手 so在Ubuntu下 我有源码 cpp文件 我很好地安装了 build essentials 包 并且使用 Anjuta IDE 来编译源代码 我有 Makefile 一切都很好 现在 虽然它编译没有错误 但当我加载它时
  • PHP 中的动态比较运算符

    是否可以以任何方式将比较运算符作为变量传递给函数 例如 我正在考虑生成一些方便的函数 我知道这行不通 function isAnd var value operator if isset var var operator value ret
  • Hive 无法手动设置减速器数量

    我有以下配置单元查询 select count distinct id as total from mytable 它会自动生成 1408 制图员1 减速机 我需要手动设置减速器的数量 我尝试了以下方法 set mapred reduce
  • 具有不透明度的重叠元素并处理这些元素上的“悬停”

    这是一个关于如何使用 JS 解决方案处理重叠元素的不透明度并使其在悬停时保持一致的问答 要求 要求是开发两个元素 透明且重叠 如下图两个红框 这些需要是透明的 以便背景内容可见 现在 当鼠标悬停在任何这些元素上时 特定元素应该变得不透明 如
  • 如何解析某些标签中带有冒号的 XML?

    我一直在阅读一些教程XmlPullParser在Android中如何解析XML数据 更具体地说 我使用的 XMLhttps gdata youtube com feeds api standardfeeds top rated 在这里 我简
  • 跳过 JavaScript 数组的 take 方法

    是否有方法可以跳过特定数量的对象并从 JavaScript 数组中获取一定数量的对象 基本上我正在寻找的模式是这样的 假设我有一个包含 8 个对象的数组 第一个循环 从数组中返回索引 0 到 3 处的对象 第二个循环 从数组中返回索引 4
  • 为什么golang RGBA.RGBA()方法使用|和<<?

    在golang color包中 有一个方法可以从an中获取r g b a值RGBA object func c RGBA RGBA r g b a uint32 r uint32 c R r r lt lt 8 g uint32 c G g
  • Apache CXF 和 servlet 映射

    我正在尝试学习 Apache CXF 的一些基础知识以及有关 servlet 映射的一般知识 我在这里修改了代码 https subversion assembla com svn pablo examples spring cxf exa
  • 使用 lodash 的 isEqual() 在比较中排除一些属性

    我在用 是平等的 https lodash com docs isEqual它比较 2 个对象数组 例如 每个对象 10 个属性 并且工作正常 现在有 2 个属性 创建和删除 我不需要成为比较的一部分 Example var obj1 na
  • 如何将第一个孩子移到最后?

    我在 div 容器中有一些 div 项目 我想连续地为它们设置动画 我知道如何在无限循环中运行我的函数 但是选择第一个 div 对其进行动画处理并在完成动画后将其移动到末尾存在问题 我的函数如下所示 function MoveItems c
  • 将 XAML 行为附加到相同类型的所有控件

    我有一个InvokeCommandAction我所拥有的附加到GotFocus的事件TextBox像这样
  • Laravel 将文件上传到项目目录之外的不同存储

    我正在创建一个 CMS 其中我可以使用 Laravel 的文件上传来上传文件 照片 pdf 等 我所做的不同之处在于 我想将文件存储在 CMS 项目目录之外 比如说我网站的存储文件夹 顺便说一句 我正在创建两个不同的项目 Laravel 文
  • CFG 在 NLTK 中使用 POS 标签 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 针对特定包的自定义意图

    假设我的应用程序是 A 我使用应用程序 A 中的自定义意图启动应用程序 B 的活动 它工作得很好 正如我所希望的那样 我使用的代码是在应用程序 B 的清单中