3. Android Application Anatomy Activities Provides User Interface Usually represents a Single Screen Can contain one/more Views Extendsthe Activity Base class Services NoUser Interface Runs in Background Extends the Service Base Class Intent/Broadcast Receiver Receives and Reacts to broadcast Intents No UI but can start an Activity Extends the BroadcastReceiver Base Class Content Provider Makes application data available to other apps Data stored in SQLite database Extends the ContentProviderBase class Application= Set of Android Components
4. Broadcast Receivers A broadcast receiver is a component that responds to system-wide Broadcast announcements. Many broadcasts originate from the system—for example, a Broadcast announcing that the screen has turned off, the battery is low, or a picture was captured or an SMS is received. Applications can also initiate broadcasts—for example, to let other Applications know that some data has been downloaded to the device and is available for them to use. Although broadcast receivers don't display a user interface, they may create a status bar notification to alert the user when a broadcast event occurs. More commonly, though, a broadcast receiver is just a "gateway" to other components and is intended to do a very minimal amount of work. For instance, it might initiate a service/or start an activity to perform some work based on the event.
5. Android Application Anatomy Activity 1 Activity 2 BroadcastReceiver Service UI OS Intents Directed Intents Broadcast Intents BIG PICTURE
6. Broadcast Receivers Activity We’ll use a Broadcast Receiver to capture SMS receive event We capture the SMS receive event and launch an Activity to show the sms and give user an option to reply the SMS BroadcastReceiver OS
7. Broadcast Receivers Create a new project BroadcastReceiverDemo A broadcast receiver is implemented as a subclass of BroadcastReceiver and each broadcast is delivered as an Intent object. In this case the intent is detected by android.provider.Telephony.SMS_RECEIVED To do this we’ll create a class SMSReceiver that extends BroadcastReceiver class and define the method onReceive() BroadcastReceiver
8. Broadcast Receivers (Contd.) 3. We also need to add SMSReceiver as receiver of a particular Intent (SMS received) which is identified by android.provider.Telephony.SMS_RECEIVED BroadcastReceiver
12. Sending SMS 1. Add permission in menifest.xml 2. We add the following code for sending SMS from anywhere of our application
13. Exercise We’ll create a replica of SMS application of Android Application will have a basic TabActivity with 3 tabs (Activities) Send- will give user option to send sms (2 input fields for number and text) All sent SMS will be saved in database Inbox- (List Activity) which will fetch all received SMS from database Sent- (ListActivity) which will fetch all sent SMS A broadcast receiver which will receive SMS and save them to database