我可以定义意图过滤器来接收主要活动中其他应用程序组件的意图吗?

时间:2014-11-24 13:00:42

标签: android android-intent android-activity

我可以定义意图过滤器来接收主要活动中其他应用程序组件的意图吗?

3 个答案:

答案 0 :(得分:0)

我想我误解了你的问题。我虽然你问的是从其他应用程序接收意图而不是从你自己的应用程序内部的组件。虽然答案非常接近您的问题,但它并未完全显示完整正确的信息。

- app中的意图 -

你可以。您需要注册主要活动才能接收这些广播事件。然后,您只需要从所需的组件发送广播意图,它将在主要活动中触发。

更多信息@ http://developer.android.com/reference/android/content/BroadcastReceiver.html

- 来自其他应用的意图 -

是(有条件),如:http://developer.android.com/guide/components/intents-filters.html

  

发送广播:   广播是任何应用都可以接收的消息。系统为系统事件提供各种广播,例如系统启动或设备开始充电时。您可以通过将Intent传递给sendBroadcast(),sendOrderedBroadcast()或sendStickyBroadcast()来向其他应用程序发送广播。

所以你只需要知道广播意图URI,它只有在不是本地/私人广播时才有效。

这是一个引用,解释如何在清单中声明接收隐式意图

  

要宣传您的应用可以接收的隐式意图,请声明一个   每个应用程序组件的更多或更多意图过滤器    清单文件中的元素。每个意图过滤器   根据intent的动作指定它接受的意图类型,   数据和类别。系统会向您提供隐含的意图   应用程序组件仅在意图可以通过您的一个意图时   过滤器。

用于意图操作的片段发送到AndroidManifest中:

<activity android:name="ShareActivity">
<intent-filter>
    <action android:name="android.intent.action.SEND"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="text/plain"/>
</intent-filter>
</activity>

答案 1 :(得分:0)

如果您正在寻找捕获活动意图的工作示例,请查看the sourcecode of intent-intercept@github

它的manifest-file包含大约90行<intent-filter... />个条目,其中列出了所有类型的可拦截意图。

答案 2 :(得分:-1)

是的,您可以使用意图过滤器从其他应用接收数据。