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

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

时间:2024-10-30 15:00:23浏览次数:4  
标签:CATEGORY Manifest 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
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

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

相关文章

  • javascript 数组 filter
    javascript数组filter在JavaScript中,filter方法被用于创建一个新数组,该数组包含通过提供的函数实现的测试的所有元素。解法1:基本使用方法letnumbers=[4,9,16,25,29];letnewNumbers=numbers.filter(num=>num>10);console.log(newNumbers);//......
  • ja-netfilter无法激活2024.2版本的问题
    内容节选自:@lzskylineJetBrains新版本2024.2在设置里添加了区域选择,具体在:Appearance&Behavior->SystemSettings->LanguageandRegion->Region中设置。如果你选择ChinaMainland将会有一个比较坑的地方:激活许可验证走account.jetbrains.com.cn这个域名,而不是默认......
  • C# 使用SuperSocket的FixedHeaderReceiveFilter进行通信
    一、服务端publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){MyServerappServer=newMyServer();......
  • hangfire filter实现
    internalclassProgram{staticasyncTaskMain(string[]args){varfilters=newList<IFilter>{newFilterA(),newFilterB(),};Func<BackgroundJob>continuation=()=>......
  • JavaWeb合集17-拦截器(Interceptor)和过滤器(Filter)
    十七、拦截器和过滤器在JavaWeb开发中,拦截器(Interceptor)和过滤器(Filter)都是用于在请求处理前后执行某些操作的机制。虽然它们的功能相似,但在实现方式、使用场景和灵活性方面有一些重要的区别。1、拦截器和过滤器的区别及选择1.1拦截器定义:拦截器是Spring框架提供......
  • 【MATLAB】无迹粒子滤波(Unscented Particle Filter)例程
    文章目录运行结果位置曲线和速度曲线位置误差曲线和速度误差曲线源代码代码结构源代码目的作者信息代码结构与功能详细说明修改建议总结运行结果位置曲线和速度曲线位置误差曲线和速度误差曲线源代码代码结构......
  • Android之Manifest.xml文件的标签+属性
    Manifest.xml文件结构目录<?xmlversion="1.0"encoding="utf-8"?><manifest><uses-permission/><permission/><permission-tree/><permission-group/><instrumentation/>&......
  • Nuxt.js 应用中的 build:manifest 事件钩子详解
    title:Nuxt.js应用中的build:manifest事件钩子详解date:2024/10/22updated:2024/10/22author:cmdragonexcerpt:build:manifest是Nuxt.js中的一个生命周期钩子,它在Vite和Webpack构建清单期间被调用。利用这个钩子,开发者可以自定义Nitro渲染在最终HTM......
  • 第6天:Intent和页面导航-补充材料——`MainActivity.kt`解读
    下面是对“第6天:Intent和页面导航”该文学习的更深层次的补充材料,对MainActivity.kt文件的理解。下面对`MainActivity.kt’文件中每一行进行详细解释:packagecom.example.intentdemo定义包名:这行代码指定了当前Kotlin文件所属的包。在Android项目中,包名通常是由反向......
  • Nuxt.js 应用中的 build:manifest 事件钩子详解
    title:Nuxt.js应用中的build:manifest事件钩子详解date:2024/10/22updated:2024/10/22author:cmdragonexcerpt:build:manifest是Nuxt.js中的一个生命周期钩子,它在Vite和Webpack构建清单期间被调用。利用这个钩子,开发者可以自定义Nitro渲染在最终HTML中的......