01. Intent-filter

591 阅读1分钟

Intent Filter介绍

<intent-filter> 就是告诉系统你的应用能做什么。比如能播放音乐,能显示图片,能当启动页面等等。

它让系统把正确的请求送到你的应用。比如用户点击了音乐文件,系统知道要用你的音乐播放器来打开。

具体例子

设置启动页面

每个应用都有一个启动页面,也就是当你点击应用图标时第一个看到的页面。这个页面需要用 <intent-filter> 来告诉系统“我是启动页面”。

<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.MAIN:这是主入口,告诉系统这是应用的主要页面。
  • android.intent.category.LAUNCHER:这是启动器,告诉系统这个页面应该出现在应用图标的后面。

处理音乐文件

假设你的应用可以播放音乐,你想让别的应用也能把音乐文件交给你的应用来播放。你可以这样设置:

<activity android:name=".MusicPlayerActivity">
    <intent-filter>
        <!-- 告诉系统这个页面可以处理播放音乐的请求 -->
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="file" />
        <data android:mimeType="audio/*" />
    </intent-filter>
</activity>
  • android.intent.action.VIEW:告诉系统这个页面可以用来“查看”文件。
  • android.intent.category.DEFAULT:这是默认类别,所有普通的 Intent 请求都会包含这个类别。
  • android:scheme="file":告诉系统这个页面可以处理文件。
  • android:mimeType="audio/*":告诉系统这个页面可以处理所有类型的音频文件。