broadcast receiver

Post on 14-Nov-2014

120 Views

Category:

Education

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Broadcast Receiver

Android application development

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

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

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.

Android Application Anatomy

UI

Activity 1

Service

Activity 2

BroadcastReceiver

OS

BIG PICTURE

Intents1. Directed Intents2. Broadcast Intents

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

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

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

Broadcast Receivers (Contd.)

4. Also we have to add permission for receiving SMS

BroadcastReceiver

Broadcast Receivers (Contd.)

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

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();

}

Sending SMS1. Add permission in menifest.xml

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

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

Thank You.

top related