当前位置: 首页 > 知识库问答 >
问题:

Android环境中不同应用程序之间的显式意图有什么用?

慕乐语
2023-03-14

在讨论Android安全问题时,我们提出了一个问题,但我们找不到一个合理的答案(也许是天真的问题):

  1. 为什么Android应用程序在清单中声明活动/接收者/服务,而不使用意图过滤器,并且使用标记exported=true?
  2. 另一个应用程序如何向上面声明的接收者发送显式意图?如果可能的话,请给出一个代码示例。
  3. 这有什么含义?

共有1个答案

戚兴邦
2023-03-14

对你给出的例子的解释是相当容易的。您给出的示例是关于broadcastreceiver组件的。该组件具有android:exported=“true”以便可以从应用程序外部的其他组件调用它。这种用法的一个很好的例子是alarmmanager。如果应用程序希望使用AlarmManager设置警报,则在警报响起时AlarmManager调用的组件必须公开可用。原因是AlarmManager必须能够启动组件,即使您的应用程序没有运行。为此,必须在清单中声明组件,并且组件必须是公开可用的(例如:“android:exported=”true“)。

通常,每当应用程序创建一个显式的intent,然后将此intent(使用pendingintent)传递给应用程序外部的另一个组件时,所讨论的组件必须是公开可用的。

您要求提供一个代码示例。另一个应用程序可以触发示例中给出的broadcastreciever组件,如下所示:

Intent intent = new Intent();
intent.setClassName("com.google.android.youtube",
                    "com.google.android.apps.youtube.core.player.notification.ExternalPlaybackControllerV14$RemoteControlIntentReceiver");
sendBroadcast(intent);

希望这能回答你所有的问题。

 类似资料:
  • 我已经阅读了一些关于将Web应用和API应用部署到Azure的教程。然而,我仍然有点不确定为什么你会使用一个而不是另一个。 我可以创建一个新的。NET解决方案,并将其部署为Web应用程序,那么为什么我会特别需要API应用程序呢?这些都是专门为ASP优化的。NET Web API,其中Web应用程序用于交付HTML?

  • 问题内容: 我有一个SQL查询,该查询返回oracle Date对象。例如: 从双重选择sysdate 当前有执行以下操作的代码: 字符串s = rs.getString(“ sysdate”); 问题是,这将在不同的环境(数据库是相同的)上返回不同的日期格式。 一种环境将返回: 另一个将返回一个更奇怪的东西:( 时间用小数点分隔) 也许这与语言环境有关。一台机器是java报告的“英语(加拿大)”

  • 我正在使用Grails 3.3.1和Spring boot。构建工具是gradle。所有与应用程序相关的属性都在application.yml文件中配置。 现在我想访问不同的。用于不同环境[开发、测试等]的yml文件。为此,我创造了不同的。每个环境的yml文件。用于运行服务器的命令是:grails-Dgrails。env=test run app Now当我访问任何属性时,它会提供来自应用程序测试

  • 问题内容: 在Windows上,我们有一个C ++应用程序来启动Java进程。这两个应用程序需要彼此通信(通过xml片段)。 您将选择哪种进程间通信方法,为什么? 我们桌上的方法是:共享文件,管道和套接字(尽管我认为这有一些安全问题)。我愿意接受其他方法。 问题答案: 我不确定为什么您认为基于套接字的通信会带来安全隐患(使用SSL)。假设您具有明确定义的通信协议,这通常是一种非常好的方法,因为它与

  • 问题内容: 我们希望将一个正在运行的应用程序拆分为两个不同的文件,以便能够更新一个应用程序而不影响另一个应用程序。每个Web应用程序将具有不同的UI,不同的用户和不同的部署时间表。 最简单的路径似乎是共享同一会话,因此如果应用程序A设置了应用程序B,则可以看到它。 有没有办法在同一个Tomcat实例中共享两个应用程序的状态? 我们的应用程序在专用的Tomcat 5.5上运行,在同一tomcat实例

  • 我不知道Spark驱动程序和应用程序主程序之间有什么区别。基本上是在运行一个应用程序中的职责,谁做什么? 在客户端模式下,客户端机器拥有驱动程序,应用程序主程序运行在集群节点中。在集群模式下,客户端没有任何驱动程序,驱动程序和应用程序主程序运行在同一个节点(集群节点之一)。 参考资料: 火花驱动程序内存和应用程序主内存 火花纱集群vs客户端-如何选择使用哪一个?