首页 > 编程知识 正文

android contentprovider(android intent用法)

时间:2023-05-04 03:22:16 阅读:76003 作者:2083

如果internet请求对单个数据执行单个操作,Android如何知道哪些APP应用程序(和组件)可以响应该请求?

Intent Filter是一种向活动、服务和Broadcast Receiver注册以允许对特定数据执行操作的功能。

使用Intent Filter,APP应用程序组件会告知Android,它将为其他程序中包括同一组程序的组件的操作请求提供服务

项目、本地或第三方APP应用程序。

要将APP应用程序组件注册为internet处理程序,请在组件的manifest节点中添加intent-filter标记。

在Intent Filter节点上,可以使用以下选项卡“相关属性”来指定组件支持的操作、类型和数据:

1 .动作测试

intent-filter元素可以包含以下子元素action :

view source打印?

1 .英特尔过滤器

2.action Android 3360 name=' com.example.project.show _ current ' /

3.action Android 3360 name=' com.example.project.show _ recent ' /

4.action Android 3360 name=' com.example.project.show _ pending ' /

5./英特尔-过滤器

一个Intent-filter元素必须至少包含一个action。 否则,任何intent请求都与intent-filter不匹配。 如果Intent

如果请求的操作与Intent-filter操作之一匹配,则该intent将通过此Intent-filter的行为测试。 如果

如果Intent请求或intent-filter未提供具体的操作类型,则会出现以下两种情况:

)如果Intent-filter不包含操作类型,则任何intent请求都与此Intent-filter不匹配

)相反,如果Intent请求没有设置Action类型,则如果Intent-filter包含Action类型,则该Intent请求是正常的

利地通过了intent-filter的行为测试。

2 .类别测试

intent-filter元素可以包含类别子元素,例如:

view source打印?

1 .英特尔过滤器.

2.category Android 3360 name=' Android.intent.category.default ' /

3.category Android : name=' Android.intent.category.browsable ' /

4./英特尔-过滤器

只有当Intent请求的所有Category都与组件中某个Intent过滤器的Category完全匹配时,该Intent请求才通过测试

、IntentFilter中多余的category声明不会导致匹配失败。 没有指定类测试的intent过滤器只是不匹配

有设定类别的互联网请求。

3 .数据测试

intent-filter中的数据说明如下。

view source打印?

1 .英特尔过滤器.

2 .数据安卓3360 type='视频/mpeg '安卓:方案=' http ' . /

3 .数据安卓3360 type=' audio/mpeg '安卓:方案=' http ' . /

4./英特尔-过滤器

data元素指定希望接受的internet请求的数据URI和数据类型。 URI分为方案、身份验证和路径三个部分进行匹配。 其中,在setData ()中设置的Inteat请求的URI数据类型和方案必须与在IntentFilter中指定的匹配。 如果在IntentFilter中还指定了authority或path,则必须匹配才能通过测试。

动作游戏

使用安卓: name

特性来指定对响应的动作名。动作名必须是独一无二的字符串,所以,一个好的习惯是使用基于 Java 包的命名方式的命名系统。

❑ category

使用 android:category 属性用来指定在什么样的环境下动作才被响应。每个 Intent Filter 标签可以包含多个 category 标签。你可以指定自定义的种类或使用 Android 提供的标准值,如下所示:


❑ ALTERNATIVE
你将在这章的后面所看到的,一个 Intent Filter 的用途是使用动作来帮忙填入上下文菜单。 ALTERNATIVE 种类指定,在某种数据类型的项目上可以替代默认执行的动作。例如,一个联系人的默认动作时浏览它,替代的可能是去编辑或删除它。

❑ SELECTED_ALTERNATIVE
与 ALTERNATIVE 类似,但 ALTERNATIVE 总是使用下面所述的 Intent 解析来指向单一的动作。SELECTED_ALTERNATIVE在需要一个可能性列表时使用。

❑ BROWSABLE
指定在浏览器中的动作。当 Intent 在浏览器中被引发,都会被指定成 BROWSABLE 种类。

❑ DEFAULT
设置这个种类来让组件成为 Intent Filter 中定义的 data 的默认动作。这对使用显式 Intent 启动的 Activity 来说也是必要的。

❑ GADGET
通过设置 GADGET 种类,你可以指定这个 Activity 可以嵌入到其他的 Activity 来允许。

❑ HOME
HOME Activity 是设备启动(登陆屏幕)时显示的第一个 Activity 。通过指定 Intent Filter 为 HOME 种类而不指定动作的话,你正在将其设为本地 home 画面的替代。

❑ LAUNCHER
使用这个种类来让一个 Activity 作为应用程序的启动项。

❑ data
data 标签允许你指定组件能作用的数据的匹配;如果你的组件能处理多个的话,你可以包含多个条件。你可以使用下面属性的任意组合来指定组件支持的数据:

❑ android:host
指定一个有效的主机名(例如, com.google )。

❑ android:mimetype
允许你设定组件能处理的数据类型。例如,<type android:value=”vnd.android.cursor.dir/*”/>能匹配任何 Android 游标。

❑ android:path
有效地 URI 路径值(例如, /transport/boats/ )。

❑ android:port
特定主机上的有效端口。

❑ android:scheme
需要一个特殊的图示(例如, content 或 http )。

接下来的代码片段显示了如何配置 Activity 的 Intent Filter ,使其以在特定数据下的默认的或可替代的动作的身份来执行 SHOW_DAMAGE动作.

Java代码 <activity android:name=".EarthquakeDamageViewer" android:label="View Damage"> <intent-filter> <action android:name="com.paad.earthquake.intent.action.SHOW_DAMAGE"> </action> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.ALTERNATIVE_SELECTED" /> <data android:mimeType="vnd.earthquake.cursor.item/*"/> </intent-filter> </activity> <activity android:name=".EarthquakeDamageViewer"android:label="View Damage"><intent-filter><actionandroid:name="com.paad.earthquake.intent.action.SHOW_DAMAGE"></action><category android:name="android.intent.category.DEFAULT"/><category


版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。