AndroidManifest.xml and Intent Filters

Abhinay Gupta
3 min readJun 9, 2023


The AndroidManifest.xml file is a fundamental component of an Android application. It serves several purposes and plays a crucial role in the functioning of an Android app. Here are the main uses of the AndroidManifest.xml file:

1. Identify the Application: The manifest file identifies the application package and provides essential information about the application, such as its name, version, and icons. It helps uniquely identify the application on the device and in the Google Play Store.

2. Declare Application Components: The manifest file declares all the components that make up an application, including activities, services, broadcast receivers, and content providers. Each component is defined with its name, class, and configuration settings. It specifies what the components are and how they should behave.

3. Define Permissions: Android enforces a security model that requires applications to explicitly declare the permissions they need to access specific system resources or perform certain operations. The manifest file allows you to declare the permissions required by your application to interact with protected resources or sensitive data.

4. Specify Hardware and Software Requirements: The manifest file enables you to specify the hardware and software requirements for your application. For example, you can define the minimum and target SDK versions, supported screen sizes, required features (e.g., camera, GPS), and supported orientations.

5. Handle App Lifecycles: The manifest file defines how the application components respond to various lifecycle events, such as when the application starts, stops, or is upgraded. It allows you to register lifecycle callbacks and specify appropriate actions for each event.

6. Declare Intent Filters: Intent filters enable your application to handle specific types of intents from the system or other applications. By declaring intent filters in the manifest file, you specify the types of intents that your components can handle, allowing your application to participate in inter-component communication and respond to various system events.

7. Configure App Security: The manifest file allows you to configure security-related settings for your application, such as declaring custom permission levels, setting up application sandboxing, specifying access permissions for content providers, and defining exported components.

Overall, the AndroidManifest.xml file serves as a vital configuration file for an Android application. It provides essential information to the Android operating system, ensures proper security and resource access, defines application components and behaviors, and allows your application to interact with the system and other applications.

Intent Filters

Intent Filters in Android are a mechanism used to declare the types of intents that a component (such as an activity, service, or broadcast receiver) can handle. Intent Filters allow your application to specify the intents it can respond to, enabling inter-component communication and interaction with other applications or the system.

Intent Filters are declared in the manifest file (AndroidManifest.xml) for the corresponding component. Here’s how you can declare an Intent Filter:

<activity android:name=".MainActivity">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:scheme="https" />

In the example above, an `<activity>` element is declared with the name “MainActivity”. It contains two `<intent-filter>` elements, each defining a specific type of intent that the activity can handle.

The first `<intent-filter>` declares that the activity is the main entry point of the application (`android.intent.action.MAIN`) and should appear in the launcher (`android.intent.category.LAUNCHER`). This is typically used to specify the main activity that will be launched when the user opens the app.

The second `<intent-filter>` allows the activity to handle `android.intent.action.VIEW` intents. It specifies that the activity can handle default view intents (`android.intent.category.DEFAULT`) and can be invoked from a web browser (`android.intent.category.BROWSABLE`). Additionally, the intent filter defines that the activity can handle URLs with `http` or `https` schemes using the `<data>` element.

By declaring intent filters, your application components can handle various types of intents based on the actions, categories, and data specified in the filters. This allows your components to respond to specific intents and enables them to interact with other components or be invoked by the system or other applications.

Intent Filters provide a powerful mechanism for inter-component communication and allow your application to participate in various system actions and events based on the declared filters.