【笔记】【Android】Manifest中的intent-filter使用

news/2024/10/30 15:03:42/文章来源:https://www.cnblogs.com/girakoo/p/18515843

【笔记】【Android】Manifest中的intent-filter使用

笔记系列,内容是从网络搜索的结果,不一定是正确的理解。
如果存在谬误,欢迎大家指正。

intent-filter是为了标明Activity,Service或者Braodcast Receiver可以相应的intent类型。

基本结构

<activity android:name=".YourActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /><data android:mimeType="image/*" /></intent-filter>
</activity>
  • action: 定义了Intent的Action。例如android.intent.action.MAIN表示应用的主入口点。
  • category: 是对Action的补充。例如android.intent.category.LAUNCHER标明该Activity是应用的启动器。
  • data: 定义了该应用可以处理的URI、MIME类型。例如<data android:mimeType="image/*" />表示该Intent处理所有图像类型的数据。

常用Action类型

在Android开发中,Action是Intent的一个重要属性,它定义了Intent要执行的操作。系统预定义了许多常用的Action,开发者也可以自定义Action。以下是一些常用的系统预定义Action及其说明:

android.intent.action.MAIN

说明: 表示应用的入口点。通常用于启动Activity,作为应用的主界面。
使用场景: 通常与android.intent.category.LAUNCHER一起使用,表示该Activity是应用的启动器。

<activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter>
</activity>

android.intent.action.VIEW

说明: 用于查看数据。系统会根据数据的类型(如URI或MIME类型)来决定使用哪个应用来处理这个Intent。
使用场景: 查看网页、图片、视频、地图等。

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://www.example.com"));
startActivity(intent);

android.intent.action.SEND

说明: 用于发送数据。通常用于分享内容,如文本、图片等。
使用场景: 分享文本、图片、文件等。

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "Hello, this is a message!");
startActivity(Intent.createChooser(intent, "Share via"));

android.intent.action.DIAL

说明: 用于拨打电话。系统会打开拨号界面,并预填充电话号码。
使用场景: 拨打电话。

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:1234567890"));
startActivity(intent);

android.intent.action.CALL

说明: 用于直接拨打电话。需要CALL_PHONE权限。
使用场景: 直接拨打电话。

Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:1234567890"));
startActivity(intent);

android.intent.action.EDIT

说明: 用于编辑数据。系统会根据数据的类型来决定使用哪个应用来处理这个Intent。
使用场景: 编辑文档、图片等。

Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setData(Uri.fromFile(new File("/sdcard/document.txt")));
startActivity(intent);

android.intent.action.PICK

说明: 用于选择数据。通常用于从文件系统中选择文件或联系人。
使用场景: 选择图片、联系人等。

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, REQUEST_CODE);

android.intent.action.GET_CONTENT

说明: 用于获取内容。通常用于从文件系统中选择文件。
使用场景: 选择文件、图片等。

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, REQUEST_CODE);

android.intent.action.SENDTO

说明: 用于发送数据到特定的URI。通常用于发送短信或电子邮件。
使用场景: 发送短信、电子邮件等。

Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:recipient@example.com"));
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, "Message body");
startActivity(intent);

说明: 用于执行网络搜索。系统会打开默认的浏览器并执行搜索。
使用场景: 执行网络搜索。

Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY, "search query");
startActivity(intent);

android.intent.action.BATTERY_LOW

说明: 用于监听电池电量低的广播。通常用于Broadcast Receiver。
使用场景: 监听电池电量低的广播。

<receiver android:name=".BatteryLowReceiver"><intent-filter><action android:name="android.intent.action.BATTERY_LOW" /></intent-filter>
</receiver>

android.intent.action.BOOT_COMPLETED

说明: 用于监听系统启动完成的广播。通常用于Broadcast Receiver。
使用场景: 监听系统启动完成的广播。

<receiver android:name=".BootCompletedReceiver"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED" /></intent-filter>
</receiver>

Category

CATEGORY_DEFAULT
CATEGORY_BROWSABLE
CATEGORY_TAB
CATEGORY_ALTERNATIVE
CATEGORY_SELECTED_ALTERNATIVE
CATEGORY_LAUNCHER
CATEGORY_INFO
CATEGORY_HOME
CATEGORY_PREFERENCE
CATEGORY_TEST
CATEGORY_CAR_DOCK
CATEGORY_DESK_DOCK
CATEGORY_LE_DESK_DOCK
CATEGORY_HE_DESK_DOCK
CATEGORY_CAR_MODE
CATEGORY_APP_MARKET
CATEGORY_VR_HOME

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/824154.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IIS禁用自动回收

主要设置了线程池里面的 1、启动模式: 由默认值改为AlwaysRunning2、 固定时间间隔:由默认1740 改为 03、将闲置空闲时间改为 0

grafana如何使用定义的变量

1.先看效果 2.定义变量 3.sql语句中使用变量

日志管理系统的系统目标是什么?

在网络安全、数据管理、故障排查等领域,日志都被广泛使用并需要进行有效的管理与分析。因此,日志管理系统的系统目标显得尤为重要,如以下几方面。 1、确保数据的安全性及完整性 在企业和组织的日常运营中,各类信息数据都会通过系统生成和传递,而这种数据往往是宝贵且敏感…

239. 滑动窗口最大值(难)

目录题目法一、暴力枚举法二、双端队列 题目给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值 。法一、暴力枚举遍历数组,获取每个窗口的子数…

Jenkins执行Shell脚本超时错误处理指南

Jenkins执行Shell脚本超时错误处理指南 在使用Jenkins进行自动化测试时,经常会遇到需要执行Shell脚本的情况。然而,当Shell脚本执行时间过长,超过了Jenkins配置的超时限制时,就会导致构建任务失败。本文将为你详细介绍如何处理Jenkins执行Shell脚本时的超时错误。 问题现象…

macOS电脑与Android设备实现文件传输,Android File Transfer下载安装使用教程

一:macOS电脑无法直接连接Android设备的原因:1、系统兼容性差异,macOS和Android设备分别属于不同的操作系统平台,它们在底层架构、文件系统以及数据传输协议等方面存在显著的差异。这种系统兼容性差异导致macOS无法直接识别并访问Android设备的文件系统。 2、驱动支持问题,…

USB协议详解第30讲(USB枚举过程详解及抓包分析)

当USB设备连接到或从USB中移除时,主机使用总线枚举过程来识别和管理接入的设备。当USB设备连接到一个已经被上电的端口,采取以下顺序行动: 1.设备上电 用户把USB设备插入USB端口(主机下的根hub或主机下行端口上的hub端口)或系统启动时设备上电。此时,USB设备处于加电状态…

ccs的介绍,安装和使用入门

第一章:ccs的介绍,下载和安装 01:ccs介绍 工欲善其事必先利其器,如果你正在打算学习DSP,那么需要准备以下三个东西: 1) DSP开发板,当然任何具有DSP最小系统的板子都是可以的; 2) 仿真器,仿真器用来将程序烧写到DSP中,同时具备在线仿真调试的功能; 3) 编译环境CCS…

2024-10-29

多表查询 内连接外连接子查询

多租户系统的核心概念模型

大家好,我是汤师爷~ 让我们深入探讨一下多租户系统的概念模型。概念模型是多租户系统的"骨架",帮助我们理解系统各部分的组织和运作方式。 多租户的核心概念模型租户:通常指一个企业客户,不同租户之间的数据和行为是相互隔离的。 用户:某个租户内的具体使用者,…

【笔记】【Android】Activity的Task模式

【笔记】【Android】Activity的Task模式 笔记系列,内容是从网络搜索的结果,不一定是正确的理解。 如果存在谬误,欢迎大家指正。 Task 一个应用可能会包含多个Activity,管理这些Activity顺序的容器,就是Task。当Activity1拉起Activity2时,Task会将Activity2压栈,将显示Ac…

USB协议详解第28讲(USB硬件设计和热拔插原理)

1.USB引脚接线定义 对于四线制的USB,即USB1.0、USB1.1和USB2.0,USB硬件接口有4根接线,如下图。引脚 名称 电缆颜色 描述1 VBUS Red +5 V,电源2 D− White Data −,数据线3 D+ Green Data +,数据线4 GND Black Ground,接地2.低速USB设备硬件设计原理 低速设备端在*D-*上集…