broadcast receiver

14
Broadcast Receiver Android application development

Upload: nationalmobileapps

Post on 14-Nov-2014

119 views

Category:

Education


3 download

DESCRIPTION

National Mobile Application Awareness Development & Capacity Building Program (Android Slides)

TRANSCRIPT

Page 1: Broadcast Receiver

Broadcast Receiver

Android application development

Page 2: Broadcast Receiver

Application Building Blocks

•UI Component Typically Corresponding to one screen.

Activity

•Responds to notifications or status changes. Can wake up your process.

IntentReceiver

•Faceless task that runs in the background.

Service

•Enable applications to share data.

ContentProvider

Page 3: Broadcast Receiver

Android Application Anatomy

Activities1. Provides User Interface2. Usually represents a Single Screen

3. Can contain one/more Views4. Extends the Activity Base class

Services1. No User Interface

2. Runs in Background3. Extends the Service Base Class

Application= Set of Android Components

Content Provider1. Makes application data available

to other apps2. Data stored in SQLite database3. Extends the ContentProvider

Base class

Intent/Broadcast Receiver1. Receives and Reacts to broadcast

Intents2. No UI but can start an Activity

3. Extends the BroadcastReceiver Base Class

Page 4: Broadcast Receiver

Broadcast Receivers1. A broadcast receiver is a component that responds to system-wide

Broadcast announcements. 2. 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.

3. 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.

4. 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.

5. 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.

Page 5: Broadcast Receiver

Android Application Anatomy

UI

Activity 1

Service

Activity 2

BroadcastReceiver

OS

BIG PICTURE

Intents1. Directed Intents2. Broadcast Intents

Page 6: Broadcast Receiver

Broadcast Receivers1. We’ll use a Broadcast Receiver to capture SMS receive event2. We capture the SMS receive event and launch an Activity to show the sms and give user an option to reply the SMS

Activity

BroadcastReceiverOS

Page 7: Broadcast Receiver

Broadcast Receivers1. Create a new project BroadcastReceiverDemo2. 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

Page 8: Broadcast Receiver

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

Page 9: Broadcast Receiver

Broadcast Receivers (Contd.)

4. Also we have to add permission for receiving SMS

BroadcastReceiver

Page 10: Broadcast Receiver

Broadcast Receivers (Contd.)

5. Now we run the application6. Now we use emulator control to send sms

Page 11: Broadcast Receiver

Receiving SMSBundle bundle = intent.getExtras(); SmsMessage[] msgs = null;String str = "";String address="";if (bundle != null){//---retrieve the SMS message received---Object[] pdus = (Object[]) bundle.get("pdus");msgs = new SmsMessage[pdus.length];for (int i=0; i<msgs.length; i++) { msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]); str += "SMS from " + msgs[i].getOriginatingAddress(); str += " :"; str += msgs[i].getMessageBody().toString(); str += "\n"; address=msgs[i].getOriginatingAddress(); Toast.makeText(context, str, Toast.LENGTH_LONG).show();

}

Page 12: Broadcast Receiver

Sending SMS1. Add permission in menifest.xml

2. We add the following code for sending SMS from anywhere of our application

Page 13: Broadcast Receiver

Exercise

We’ll create a replica of SMS application of Android

1. Application will have a basic TabActivity with 3 tabs (Activities)1. Send- will give user option to send sms (2 input fields for

number and text)All sent SMS will be saved in database

2. Inbox- (List Activity) which will fetch all received SMS from database

3. Sent- (ListActivity) which will fetch all sent SMS2. A broadcast receiver which will receive SMS and save them to

database

Page 14: Broadcast Receiver

Thank You.