首页 > 其他分享 >【GiraKoo】Manifest中的intent-filter使用

【GiraKoo】Manifest中的intent-filter使用

时间:2024-10-30 17:33:41浏览次数:1  
标签:CATEGORY GiraKoo filter Intent new action intent android

【笔记】【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:[email protected]"));
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: 默认的Intent类别,表示没有特定的类别。
CATEGORY_BROWSABLE: 表示Intent可以被浏览器启动。
CATEGORY_TAB: 表示Intent可以被用作标签页。
CATEGORY_ALTERNATIVE: 表示Intent是一个替代方案,可以替代其他Intent。
CATEGORY_SELECTED_ALTERNATIVE: 表示Intent是一个已选择的替代方案。
CATEGORY_LAUNCHER: 表示Intent可以被用作启动器。
CATEGORY_INFO: 表示Intent可以被用作提供信息的应用。
CATEGORY_HOME: 表示Intent可以被用作主屏幕。
CATEGORY_PREFERENCE: 表示Intent可以被用作设置。
CATEGORY_TEST: 表示Intent可以被用作测试。
CATEGORY_CAR_DOCK: 表示Intent可以被用作车载设备。
CATEGORY_DESK_DOCK: 表示Intent可以被用作台式设备。
CATEGORY_LE_DESK_DOCK: 表示Intent可以被用作小型台式设备。
CATEGORY_HE_DESK_DOCK: 表示Intent可以被用作大型台式设备。
CATEGORY_CAR_MODE: 表示Intent可以被用作车载模式。
CATEGORY_APP_MARKET: 表示Intent可以被用作应用商店。
CATEGORY_VR_HOME: 表示Intent可以被用作VR主屏幕。

标签:CATEGORY,GiraKoo,filter,Intent,new,action,intent,android
From: https://www.cnblogs.com/girakoo/p/18516250

相关文章

  • 【GiraKoo】面试者如何忽悠一个不懂技术的面试官
    萌新面试者如何忽悠一个不懂技术的面试官由于公司业务需要,做了几天Android的面试官。作为一个完全没有做过Android项目的开发者,我无法问出具体的框架,技术细节。对于萌新,新公司,新业务往往公司无法派出一个技术大牛来面试一个萌新。很多情况下,是其他搞技术的人,或者项目经理直接......
  • 【GiraKoo】Riters瑞特斯闹钟说明书
    对于闹钟这种按钮存在大量复用,长按操作的设备。说明书一旦丢失,真的很麻烦。特准备了一个系列,专门保存使用说明书。希望能给大家提供一点帮助。型号:RTS-1909......
  • 【GiraKoo】夜神模拟器提示“当前设备未开启VT”
    【解决】夜神模拟器提示“当前设备未开启VT”环境Windows11夜神模拟器64位现象启动夜神模拟器时,提示“检测到当前设备未开启VT,请先开启VT后再运行64位模拟器”原因首先,需要按照VT教程,检查BIOS是不是真的没有开启VT功能。如果当前已经开启了VT。但是依然无法运行夜神。......
  • 【GiraKoo】Visual Studio开启Asan提示“LINK fatal error LNK1104 cannot open file
    【解决】VisualStudio开启Asan提示“LINKfatalerrorLNK1104cannotopenfile'LIBVCASAN.lib'”环境VisualStudio2022现象VisualStudio2022提示:LINK:fatalerrorLNK1104:cannotopenfile'LIBVCASAN.lib'原因在VisualStudio的VC++Directories,加入......
  • 【GiraKoo】面向对象开发系列之【封装】
    【技术分享】面向对象开发系列之【封装】理解封装是面向对象程序开发的基石。程序开发,最核心价值,是数据。程序其实是读取数据,操作数据,保存数据等一系列操作。那么经过良好组织过的数据,将使编程事半功倍。高内聚,低耦合说到数据,经常挂在嘴边的,就是这句高内聚,低耦合了。这并......
  • 【GiraKoo】面向对象开发系列之【为什么要用面向对象】
    开源项目:https://girakoo.com/问答为什么要有面向对象开发?面向过程开发的C语言,往往有以下几个问题:不同的开发人员需要使用功能完全相同,或者大部分相同的函数。如果某个算法存在问题,很难保证工程里面其他位置的代码也同步获得更新。各个模块之间都是硬链接,A调用B。如果B过时......
  • 【GiraKoo】线程本地存储(Thread Local Storage, TLS)
    【技术分享】线程本地存储(ThreadLocalStorage,TLS)在项目开发中,遇到了关于TLS相关的问题。为了了解该机制的用途,在微软的官网查找了一些资料。本文参考官方文档,简单介绍一下TLS的用途与使用方法。微软官方文档链接一、简介线程本地存储(TLS),可以使多个线程,通过TlsGetValue函......
  • 【GiraKoo】常用编码的对比(ASCII,GB2312,GBK,GB18030,UCS,Unicode)
    甯哥敤缂栫爜鐨勫姣旓紙ASCII锛孏B2312锛孏BK锛孏B18030锛孶CS锛孶nicode锛�鍦ㄧ▼搴忓紑鍙戜腑锛屾枃瀛楃紪鐮佷竴鐩存壆婕旂潃浜虹暅鏃犲锛屽嵈鑳屽悗鎹呬竴鍒€鐨勮鑹层€�鍙兘鍦ㄦ簮浠g爜鏂囦欢涓紝娉ㄩ噴鑾悕鍏跺鍦板彉鎴愪簡涔辩爜銆�鍙兘鏄彂閫佺粰鍒......
  • 【GiraKoo】C++编译中常用的内置宏
    开源项目:https://girakoo.com/联系方式:[email protected]简介针对不同的平台,很多头文件,函数名称,类型占用空间不一致。为了保证跨平台可编译,经常需要在项目中使用宏进行区分系统宏操作系统可使用的宏Windows32位_WIN32Windows64位_WIN32;_WIN64Linux__linu......
  • 【GiraKoo】Android系统版本代号一览
    Android系统版本代号一览VersionCodeNameAPI时间13.0Tiramisu332022.0812.0SnowCone31,322021.1011.0R/11302020.0910.0Q/10292019.059.0P/(Pie)282018.088.1O_MR1272017.128.0O/(Oreo)262017.087.1N_MR125201......