Android Development

Intents

An Android Intent is an abstract description of an operation to be performed. It can be used with startActivity to launch an Activity, broadcastIntent to send it to any interested BroadcastReceiver components, and startService(Intent) or bindService(Intent, ServiceConnection, int) to communicate with a background Service. 

For example, let's assume that you have an Activity that needs to launch an email client and sends an email using your Android device. For this purpose, your Activity would send an ACTION_SEND along with appropriate chooser, to the Android Intent Resolver. The specified chooser gives the proper interface for the user to pick how to send your email data. 

Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:")); 

email.putExtra(Intent.EXTRA_EMAIL, recipients); 

email.putExtra(Intent.EXTRA_SUBJECT, subject.getText().toString()); 

email.putExtra(Intent.EXTRA_TEXT, body.getText().toString()); 

startActivity(Intent.createChooser(email, "Choose an email client from...")); 
Context.startActivity() 
The Intent object is passed to this method to launch a new activity or get an existing activity to do something new. 
Context.startService() 
The Intent object is passed to this method to initiate a service or deliver new instructions to an ongoing service. 
Context.sendBroadcast() 
The Intent object is passed to this method to deliver the message to all interested broadcast receivers. 

An Intent object is a bundle of information which is used by the component that receives the intent as well as information used by the Android system. 

An Intent object can contain the following components based on what it is communicating or going to perform. 

ACTION_VIEW content://contacts/people/1 
Display information about the person whose identifier is "1". 
ACTION_DIAL content://contacts/people/1 
Display the phone dialer with the person filled in. 
ACTION_VIEW tel:123 
Display the phone dialer with the given number filled in. 
ACTION_DIAL tel:123 
Display the phone dialer with the given number filled in. 

Types of Intents 

Explicit Intents 

Explicit intent going to be connected internal world of application,suppose if you wants to connect one activity to another activity, we can do this quote by explicit intent, below image is connecting first activity to second activity by clicking button. 

Implicit Intents 

These intents do not name a target and the field for the component name is left blank. Implicit intents are often used to activate components in other applications. 

Following is the content of the modified main activity file src/com.example.My Application/MainActivity.java 

import android.content.Intent; 

import android.net.Uri; 

import android.support.v7.app.AppCompatActivity; 

import android.os.Bundle; 

import android.view.View; 

import android.widget.Button; 

 

public class MainActivity extends AppCompatActivity { 

   Button b1,b2; 

 

   @Override 

   protected void onCreate(Bundle savedInstanceState) { 

      super.onCreate(savedInstanceState); 

      setContentView(R.layout.activity_main); 

 

      b1=(Button)findViewById(R.id.button); 

      b1.setOnClickListener(new View.OnClickListener() { 

 

         @Override 

         public void onClick(View v) { 

            Intent i = new Intent(android.content.Intent.ACTION_VIEW,  

               Uri.parse("http://www.example.com")); 

            startActivity(i); 

         } 

      }); 

 

      b2=(Button)findViewById(R.id.button2); 

      b2.setOnClickListener(new View.OnClickListener() { 

         @Override 

         public void onClick(View v) { 

            Intent i = new Intent(android.content.Intent.ACTION_VIEW, 

               Uri.parse("tel:9510300000")); 

            startActivity(i); 

         } 

      }); 

   } 

} 

Following will be the content of res/layout/activity_main.xml file 

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 

   xmlns:tools="http://schemas.android.com/tools"  

   android:layout_width="match_parent" 

   android:layout_height="match_parent"  

   android:paddingLeft="@dimen/activity_horizontal_margin" 

   android:paddingRight="@dimen/activity_horizontal_margin" 

   android:paddingTop="@dimen/activity_vertical_margin" 

   android:paddingBottom="@dimen/activity_vertical_margin"  

   tools:context=".MainActivity"> 

    

   <TextView 

      android:id="@+id/textView1" 

      android:layout_width="wrap_content" 

      android:layout_height="wrap_content" 

      android:text="Intent Example" 

      android:layout_alignParentTop="true" 

      android:layout_centerHorizontal="true" 

      android:textSize="30dp" /> 

       

   <TextView 

      android:id="@+id/textView2" 

      android:layout_width="wrap_content" 

      android:layout_height="wrap_content" 

      android:text="Tutorials point" 

      android:textColor="#ff87ff09" 

      android:textSize="30dp" 

      android:layout_below="@+id/textView1" 

      android:layout_centerHorizontal="true" /> 

       

   <ImageButton 

      android:layout_width="wrap_content" 

      android:layout_height="wrap_content" 

      android:id="@+id/imageButton" 

      android:src="@drawable/abc" 

      android:layout_below="@+id/textView2" 

      android:layout_centerHorizontal="true" /> 

       

   <EditText 

      android:layout_width="wrap_content" 

      android:layout_height="wrap_content" 

      android:id="@+id/editText" 

      android:layout_below="@+id/imageButton" 

      android:layout_alignRight="@+id/imageButton" 

      android:layout_alignEnd="@+id/imageButton" /> 

       

   <Button 

      android:layout_width="wrap_content" 

      android:layout_height="wrap_content" 

      android:text="Start Browser" 

      android:id="@+id/button" 

      android:layout_alignTop="@+id/editText" 

      android:layout_alignRight="@+id/textView1" 

      android:layout_alignEnd="@+id/textView1" 

      android:layout_alignLeft="@+id/imageButton" 

      android:layout_alignStart="@+id/imageButton" /> 

       

   <Button 

      android:layout_width="wrap_content" 

      android:layout_height="wrap_content" 

      android:text="Start Phone" 

      android:id="@+id/button2" 

      android:layout_below="@+id/button" 

      android:layout_alignLeft="@+id/button" 

      android:layout_alignStart="@+id/button" 

      android:layout_alignRight="@+id/textView2" 

      android:layout_alignEnd="@+id/textView2" /> 

</RelativeLayout> 

Following is the default content of AndroidManifest.xml 

<?xml version="1.0" encoding="utf-8"?> 

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 

   package="com.example.saira_000.myapplication"> 

 

   <application 

      android:allowBackup="true" 

      android:icon="@mipmap/ic_launcher" 

      android:label="@string/app_name" 

      android:supportsRtl="true" 

      android:theme="@style/AppTheme"> 

      <activity android:name=".MainActivity"> 

         <intent-filter> 

            <action android:name="android.intent.action.MAIN" /> 

            <category android:name="android.intent.category.LAUNCHER" /> 

         </intent-filter> 

      </activity> 

   </application> 

</manifest> 

Preview of application

Android Intent BrowserGraphical user interface, text, application, chat or text message

Description automatically generated

Module 3- Advanced Android (Prev Lesson)
(Next Lesson) Intent Filters and Broadcast Receivers
Back to Android Development

No Comments

Give a comment