Android使用Intent Filter来响应隐式Intent

如果一个Intent请求在一片数据上执行一个动作,Android如何知道哪个应用程序(和组件)能用来响应这个请求呢?Intent Filter就是用来注册Activity、Service和Broadcast Receiver具有能在某种数据上执行一个动作的能力。

 

使用Intent Filter,应用程序组件告诉Android,它们能为其它程序的组件的动作请求提供服务,包括同一个程序的组件、本地的或第三方的应用程序。

 

为了注册一个应用程序组件为Intent处理者,在组件的manifest节点添加一个intent-filter标签。

 

在Intent Filter节点里使用下面的标签(关联属性),你能指定组件支持的动作、种类和数据:

 

❑ action

使用android: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代码 
  1. <activity android:name=”.EarthquakeDamageViewer”  
  2.   
  3. android:label=”View Damage”>  
  4.   
  5. <intent-filter>  
  6.   
  7. <action  
  8.   
  9. android:name=”com.paad.earthquake.intent.action.SHOW_DAMAGE”>  
  10.   
  11. </action>  
  12.   
  13. <category android:name=”android.intent.category.DEFAULT”/>  
  14.   
  15. <category  
  16.   
  17. android:name=”android.intent.category.ALTERNATIVE_SELECTED”  
  18.   
  19. />  
  20.   
  21. <data android:mimeType=”vnd.earthquake.cursor.item/*”/>  
  22.   
  23. </intent-filter>  
  24.   
  25. </activity>  

 

 

【CAD】【手把手带你写一个DXF&JAVA解析框架】02——整理DXF元数据实体类,涵盖重要属性与对照组码 本文系统梳理了DXF文件解析中的核心元数据类,重点分析了Tables段(图层、块记录)、Blocks段和Entities段的关键数据结构。通过详细的组码说明和对照代码实现,阐述了图层定义(DXFLayer)、块记录(DXFBlockRecord)、应用程序标识(DXFAppId)等表对象的属性构成;同时解析了直线(DXFLine)、多段线(DXFLwPolyLine)、圆弧(DXFArc)、文字(DXFText)等实体类的几何特征与属性定义。文章还构建了顶点(Vertex)、基类(DXFEntity、DXF 阅读详情

相关推荐

win10安装openvpn客户端

进入C:\Program Files\TAP-Windows\bin目录,然后右键用管理员权限执行addtap.bat文件,此文件执行会创建一个网卡。链接:https://pan.baidu.com/s/1KAifTiP7qp1i5ZkfdnfwkA。4.2 进入安装目录的config下新建一个文件夹,将证书文件全部挪进去(不移动.ovpn文件)3.4 将拿到的ssl认证文件放入安装目录的config目录下。然后修改ovpn文件 “./”代表当前路径,第二个链接重复。3.1 一直下一步到这里打上勾。

qq_36200932的博客 3万+

使用Intent Filter来响应隐式Intent

如果一个Intent请求在一片数据上执行一个动作,Android如何知道哪个应用程序(和组件)能用来响应这个请求呢?Intent Filter就是用来注册Activity、Service和Broadcast Receiver具有能在某种数据上执行一个动作的能力。 使用Intent Filter,应用程序组件告诉Android,它们能为其它程序的组件的动作请求提供服务,...

de14141983的专栏 209

基于深度残差U-Net与多尺度注意力机制的医学图像分割系统

本文提出了一种创新的医学图像分割系统,通过融合残差连接、通道注意力机制和空间金字塔池化技术,构建了高性能的UResnet分割网络。系统采用编码器-解码器架构,创新性地引入多层次特征增强模块,显著提升了医学图像中复杂组织结构的分割精度。实验结果表明,该方案在多个医学图像数据集上均取得了优异性能,边界分割精度提升15%,训练收敛速度提升30%,同时减少20%计算量。系统为临床诊断提供了可靠的技术支持,未来可扩展至3D医学图像分割和联邦学习等方向。

Henry的博客 813

Android中隐式Intent以及Intent-filter详解

一、精要概述 摘要 隐式意图:没有明确指定组件名的Intent为隐式意图。 对于隐式意图,Android是怎样寻找到这个最合适的组件呢?记的前面我们在定义活动时,指定了一个intent-filter,Intent Filter(意图过滤器)其实就是用来匹配隐式Intent的,当一个意图对象被一个意图过滤器进 隐式意图:没有明确指定组件名的Intent为隐式意图。   对于隐式

3181

告别反复格式化!用Ventoy制作2025年终极启动盘,Windows/Linux/macOS一网打尽

本文详细介绍了如何使用Ventoy制作2025年终极多系统启动盘,彻底告别反复格式化U盘的烦恼。Ventoy通过创新的引导加载器架构,允许用户在一个U盘内同时存放并直接启动Windows、Linux、macOS等多种系统镜像和WePE等维护工具,实现真正的非破坏性管理和极高的U盘利用率。文章涵盖从安装配置、镜像库构建到安全启动设置等全流程实战指南。

weixin_29280219的博客 240

Yolov5s可视化网络结构图

Yolov5共有四种网络结构,每种网络深度和宽度上都不相同。 (1) Yolov5s可视化网络结构图:点击查看 (2) Yolov5m可视化网络结构图:点击查看 (3) Yolov5l可视化网络结构图:点击查看 (4) Yolov5x可视化网络结构图:点击查看 ...

江南研习社 15万+

简述 IntentFilter(意图过滤器)

转载自:http://www.cnblogs.com/ywtk/p/4158103.html 侵删 1.什么是IntentFilter ? IntentFilter翻译成中文就是“意图过滤器”,主要用来过滤隐式意图。当用户进行一项操作的时候,Android系统会根据配置的 “意图过滤器” 来寻找可以响应该操作的组件,服务。 例如:当用户点击PDF文件的时候,Android系统

Seachal的博客 2525

手把手教你用PlantVillage数据集搭建农作物病害识别模型(Python实战)

本文详细介绍了如何使用PlantVillage数据集和Python构建农作物病害识别模型。从环境准备、数据获取到模型构建、训练与评估,手把手教你实现一个实用的农业AI应用。特别针对PlantVillage数据集的特点,提供了处理类别不平衡、图像预处理和模型优化的实战技巧,帮助开发者快速掌握农作物病害识别技术。

weixin_29184371的博客 479

Android Intent开发 Intent-filter

1,Intent的基础用法 Intent是android中各activity之间通信的一个很重要的类,一般我们是这么使用的   //创建一个intent Intent intent = new Intent(); //压值进intent中 //intent是基于一种基于Map的数据结构 //传我们的基本数据类型的可以之间key,value方式传值 intent.p

west8623的专栏 961

计算数列位置N的值

本文介绍了一个数列生成问题,要求根据输入的两个整数M和N生成特定规则的数列,并输出第N个位置上的数值。数列生成规则为:前M个元素为1到M;后续元素根据前M个元素是否重复来决定计算方式(求和或求差)。文章提供了C++、Java和Python三种语言的实现方案,均包含输入处理、数列初始化、循环计算和结果输出等步骤。各语言实现中均使用集合去重特性判断重复元素,并通过内置函数或自定义方法求取最大值和最小值。该问题主要考察基础编程能力,包括数组/列表操作、最值计算和重复元素判断等基本编程技巧。

面试高手的博客 652

16、AI与无人机助力紧急器官移植及医疗物资运输

本文探讨了AI与无人机(UAV)集成模型在紧急器官移植和医疗物资运输中的应用。传统运输方式受限于交通、时间和环境因素,而基于图神经网络(GNN)的AI-UAV系统可实现高效、智能、全天候的医疗物资配送,具备实时温湿度监控、自动导航和适应复杂地形等优势。文章分析了该模型在血液、器官运输中的关键作用,展示了其在澳大利亚、中国、美国等国的实际应用案例,并通过表格与流程图说明运作机制。同时,文章还探讨了技术、法规和社会层面的挑战及应对策略,展望了未来技术融合、应用拓展和国际合作的发展趋势,凸显其在全球医疗物流中的广

lll78的博客 102

获取能响应一个Intent的所有组件信息。

Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);         mainIntent.addCategory(Intent.CATEGORY_SAMPLE_CODE);         PackageManager pm = getPackageManager();         List list = pm.quer

followztx的专栏 600

PCL 区域生长分割【2026最新版】

区域生长算法原理介绍、代码实现以及一个具体实验场景的应用案例进一步实现将分割结果的分类保存至本地文件夹。最近一次更新时间为:2026年5月4日。

点云侠的博客 40万+

Android Studio的三种显示Intent和隐式Intent

目录一、三种显示Intent简介二、用三种显示意图打开其他Activity三、实现效果 一、三种显示Intent简介 方式一与方式二在点击相应的按钮后都会跳转到当前的APP的Activity上面 方式三在点击按钮后会跳转到其他的APP的Activity上面 二、用三种显示意图打开其他Activity 工程结构 添加3个button控件 添加时间控件 添加日期控件 复制类的全类名 APP的项目文件名 三、实现效果 ...

qq_48008050的博客 804

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

使用隐式Intent打开Activity

使用隐式Intent打开Activity 一、隐式Intent简介 一个没有声明Intent-filter的组件只能相应指明自己名字的显示Intent请求,而不能响应隐式Intent的请求,声明intent-filter之后则两者皆可响应。 Android系统会根据IntentFilter中2设置的action(动作),category(类别),数据(URI和数据类型)找到最适合组件来处理这个意图。 二、隐式方式 1、添加双标签 2、这里的action添加唯一性,其他activity打开DateAct

TBMmagic的博客 696

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【Android】11、使用隐式Intent

本篇介绍隐式Intent

思跡的博客 833

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

显示Intent和隐式Intent

Intent用于Android各组件之间的通信,主要完成下列3部分工作:(1)标明本次通信请求从哪里来、到哪里去、要怎么走。(2)发起方携带本次通信需要的数据内容,接收方从收到的意图中解析数据。(3)发起方若想判断接收方的处理结果,意图就要负责让接收方传回应答的数据内容。Intent的组成部分见表。

WXD1234Q的博客 233

安卓学习第二弹(第三发)Intent显式和隐式使用

Intent是安卓程序中各个组件之间进行交互的一种重要方式,可以用于当前组件想要执行的动作,还可以在不同组件之间传递数据。一般用于服务,广播,启动活动。 启动活动:Intent有很多方法重载,启动活动可以使用:Intent(Context packageContext,Class&amp;lt;?&amp;gt;cls)第一个参数要求提供启动活动的上下文,第二个参数指定想要启动的目标活动,Activity类提供了...

To_Error的博客 355

使用Intent跳转活动

Intent大致可以分为两种:显示Intent和隐式Intent 1. 显示Intent button.setOnclickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Intent intent = new Intent(FirstActivity.this, SecondActi...

小仓猪的博客 485

【Android开发】 在Activity中使用Intent

在Activity中使用Intent Intent是Android程序中各组件之间交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Intent一般被用于启动活动、启动服务以及发送广播等场景。 显式Intent Intent有多个构造器重载,其中一个是Intent(Context packContext, Class<?> cls)。这个构造器函数接受两个参数,第一个参数Context要求提供一个启动活动的上下文,第二个参数Class则是指定想要启动的目标

HelloWorled的博客 364

Android中intent显式意图和隐式意图

1.显示意图: 很简单,只需知道目标java文件位置及名称。 然后写下: Intent intent=new Intent(this,Activity.class); startActivity(intent); 黑体部分就是目标Activity。 2.隐式意图: 这个要先在manifests文件下打开AndroidManifest.xml文件,然后在目标Activity定义区域加上括号部分即可:...

c1776167012的博客 404

Intent意图的深入

使用Intent可以激活Android应用三种类型的核心组件:活动、服务和广播接收者。 Intent可以划分成显式意图和隐式意图。 显式意图: 调用Intent.setComponent() \ Intent.setClassName或Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了要激活的组件是哪个组件 比如以下代码为显式意图: @Override public void onClick(View view) {

qq_45491681的博客 1484

隐式意图套路

隐式意图套路发生短信// <intent-filter> // <action android:name="android.intent.action.VIEW" /> // <action android:name="android.intent.action.SENDTO" /> // <category android:name="android.intent.category.DEFAULT

仨胖的博客 263

android第五节在活动中穿梭

首先新建一个layout布局文件然后新建一个java类public class SecondActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setCon

Show me the code. 360

Android:intent的基础

只有一个活动的应用也太简单了吧?没错,你的追求应该更高一点。不管你想创建多少 个活动,方法都和上一节中介绍的是一样的。唯一的问题在于,你在启动器中点击应用的图 标只会进入到该应用的主活动,那么怎样才能由主活动跳转到其他活动呢?我们现在就来一 起看一看。   2.3.1   使用显式 Intent   你应该已经对创建活动的流程比较熟悉了,那我们现在快速地在 ActivityTest 项...

weixin_34220963的博客 81

如何使用隐式Intent

使用隐式Intent 相比于显式 Intent, 隐式 Intent则含蓄了许多,它并不明确指出我们想要启动哪一个活动,而是指定了一系列更为抽象的action 和 category等信息,然后交由系统去分析这个Intent ,并帮我们找出合适的活动去启动。 什么叫作合适的活动呢?简单来说就是可以响应我们这个隐式 Intent 的活动,那么目前ScondActivity可以响应什么样的隐式 Intent呢?额,现在好像还什么都响应不了,不过很快就会有了。 通过在<activity>标签下配置的内容

YJNZHA的博客 1422
上一篇: Android如何解析Intent Filter
下一篇: Android菜单系统介绍
SleepInDelphi
博客等级 码龄19年 32粉丝 388原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值