Android Mobile Application Development Intents and Filters Lecture
Android Mobile Application Development Intents and Filters Lecture Four Assistant Lecturer Mustafa Ghanem Saeed Computer science Department Collage Of Science Cihan University - Sulaimaniyah
What are intents? • Intents are asynchronous messages which allow application components to request functionality from other Android components. Intents allow you to interact with components from the same applications as well as with components contributed by other applications. o For example, an activity can start an external activity for taking a picture. • Intents are objects of the android. content. Intent type. • Your code can send them to the Android system defining the components you are targeting. o For example, via the start. Activity() method you can define that the intent should be used to start an activity. http: //www. vogella. com/tutorials/Android. Intent/article. html 2
Android intents are mainly used to: (Question) 1. Open another Activity or Service from the current Activity 2. Pass data between Activities and Services 3. Give responsibility to another application. For example, you can use Intents to open the browser application to display a URL. 4. Broadcast a message. 5. Dial a phone call etc. http: //www. javatpoint. com/android-intent-tutorial 3
Types of Android Intents (Question) 1. Implicit Intent o Implicit Intent specify the action which should be performed and optionally data which provides content for the action. o For example, the following tells the Android system to view a webpage. All installed web browsers should be registered to the corresponding intent data via an intent filter. 4
Types of Android Intents (Question) cont. 2 - Explicit intents explicitly define the component which should be called by the Android system, by using the Java class as identifier. o The following code demonstrates how you can start another activity via an intent. http: //www. vogella. com/tutorials/Android. Intent/article. html 5
Types of Android Intents (Question) cont. 1. use explicit intents to: 1. 2. 3. 4. 5. start a new activity start an activity to get a result start a service broadcast an intent start a new activity from within a broadcast receiver 2. use implicit intents to: 1. use other app’s components to: 1. send an email 2. pick a contact from the contacts list 3. make a phone call 3. use a pending intent to send a notification https: //www. 101 apps. co. za/articles/android-s-intents-and-intent-filters-a-tutorial. html 6
Intent Filters q There are following Five elements in an intent filter: 1. Action o It represent an activities action, what an activity is going to do. 2. Data o There are two forms in which you can pass the data, using URI(Uniform Resource Identifiers) or MIME type of data 3. Category o This attribute of Intent filter dictates the behavior or nature of an Intent 4. Extras o Key-value pairs for additional information that should be delivered to the component handling the intent 5. Flags o These flags are optional part of Intent object and instruct the Android system how to launch an activity, and how to treat it after it's launched etc. Important Note: Every intent filter must contain action element in it. Data and category element is optional for it. http: //abhiandroid. com/programming/intent-filter 7
Intent Filters-Action 1 q The Intent class defines a number of action constants, including these: Constant Target component Action ACTION_CALL activity Initiate a phone call. ACTION_EDIT activity Display data for the user to edit. ACTION_MAIN activity Start up as the initial activity of a task, with no data input and no returned output. ACTION_SYNC activity Synchronize data on a server with data on the mobile device. http: //www. linuxtopia. org/online_books/android/devguide/topics/intents-filters. html 8
Intent Filters-Action 2 q The Intent class defines a number of action constants, including these: Constant Target component Action ACTION_BATTERY_LOW Broadcast Receiver A warning that the battery is low. ACTION_HEADSET_PLUG Broadcast Receiver A headset has been plugged into the device, or unplugged from it. ACTION_SCREEN_ON Broadcast Receiver The screen has been turned on. ACTION_TIMEZONE_CHA NGED Broadcast Receiver The setting for the time zone has changed. http: //www. linuxtopia. org/online_books/android/devguide/topics/intents-filters. html 9
Intent Filters- Data q The URI of the data to be acted on and the MIME type of that data. Different actions are paired with different kinds of data specifications. • The URI: At the highest level a URI reference (Uniform Resource Identifiers) in string form has the syntax o [scheme: ]scheme-specific-part[#fragment] o For example: mailto: java-net@java. sun. com news: comp. lang. java • Short for Multipurpose Internet Mail Extensions, a specification formatting non-ASCII messages so that they can be sent over the Internet. For Examples: o For Text "text/plain" o For Image : "image/jpeg“ , "image/bmp“ , "image/gif“ , "image/jpg“ , "image/png" o For Video: "video/wav“, "video/mp 4" http: //www. linuxtopia. org/online_books/android/devguide/topics/intents-filters. html 10
Intent Filters- Data 2 Some examples of Action/Data Pair Sr. No. 1 2 3 4 5 Action/Data Pair & Description 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. ACTION_EDIT content: //contacts/people/1 Edit information about the person whose identifier is "1". <intent-filter. . . > <data android: type="video/mpeg" android: scheme="http". . . /> <data android: type="audio/mpeg" android: scheme="http". . . /> . . . </intent-filter> 11
Intent Filters- Category q The Intent class defines several category constants, including these (More than 29 category): Constant Meaning CATEGORY_BROWSABLE The target activity can be safely invoked by the browser to display data referenced by a link — for example, an image or an e-mail message. CATEGORY_DEFAULT Set if the activity should be an option for the default action (center press) to perform on a piece of data. CATEGORY_APP_MAPS Used with ACTION_MAIN to launch the maps application. CATEGORY_LAUNCHER an activity on the top of stack, whenever application will start, the activity containing this category will be opened first. . https: //www. tutorialspoint. com/android_intent_standard_categories. htm 12
Intent Filters- Extras • This will be in KEY-VALUE PAIRS for additional information that should be delivered to the component handling the intent. The extras can be set and read using the put. Extras() and get. Extras() methods respectively (More than 26 Extras): • For examples : • EXTRA_EMAIL: A String[] holding e-mail addresses that should be delivered to. • EXTRA_HTML_TEXT: A constant String that is associated with the Intent, used with ACTION_SEND to supply an alternative to EXTRA_TEXT as HTML formatted text. Intent i=new Intent(context, Send. Message. class); i. put. Extra("id", user. get. User. Account. Id()+""); i. put. Extra("name", user. get. User. Full. Name()); context. start. Activity(i); https: //www. tutorialspoint. com/android_intent_standard_extra_data. htm 13
Intent Filters- Flags 1 q Flags defined in the Intent class that function as metadata for the intent. The flags may instruct the Android system how to launch an activity and how to treat it after it’s launched. (More than 33 Flags): q FLAG_ACTIVITY_CLEAR_TASK - Clear any existing tasks on this stack before starting the activity. q FLAG_ACTIVITY_NEW_TASK - Start the activity in a new task or reuse an existing task tied to that activity. Intent i=new Intent(this, Sample. class); i. set. Flags(Intent. FLAG_ACTIVITY_NEW_TASK); start. Activity(i); https: //inthecheesefactory. com/blog/understand-android-activity-launchmode/en 14
Intent Filters- Flags 2 q How FLAG_ACTIVITY_NEW_TASK work: q With normal intent Start. Activity q With FLAG_ACTIVITY_NEW_TASK: https: //inthecheesefactory. com/blog/understand-android-activity-launchmode/en 15
Important Questions? ü ü ü ü ü Define Android intents? Ans : Slide 2 Mention mainly used of Android intents ? Ans : Slide 3 Explain the Types of Android Intents? Ans : Slide 4, 5 Give Three examples of using Android Intents as : Ans : Slide 6 a) Use explicit intents? b) Use implicit intent? What are the elements of intent filter list them with short definition ? Ans : Slide 7 Give Three intent Action filter name and goal when apply on: a) Activity? Ans : Slide 8 b) Broadcast Receiver? Ans : Slide 9 Define Data intent filter and Explain (URL or MIME ) with example? Ans : Slide 7, 10 What is Category intent filter end explain only Two type of it? Ans : Slide 7, 12 Explain Extras intent filter and write sample java code to implement it ? Ans : Slide 7, 13 Explain Flags intent filter and write sample java code to implement it ? Ans : Slide 7, 14 16
Questions? Discussion? 17 Slide
- Slides: 17