Dokumen tersebut membahas tentang pengiriman pesan (message) menggunakan fungsi intent dan SmsManager di Android, menerima pesan SMS, dan penggunaan Broadcast Receiver untuk menerima pesan yang dikirim oleh aplikasi lain. Termasuk cara membuat layout, mengirim pesan SMS, menerima hasil pengiriman, dan meregister Broadcast Receiver di manifest.
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Praktikum 10
1. Praktikum 10
Message
Untuk message di android dalam materi ini menggunakan fungsi intent. Kemudianmemanggil fungsi
SmsManager yang disediakan android. Kemudian di bagian manifest :
android:versionCode="1"
android:versionName="1.0.0">
send sms fungsi mengirim dan receive sms untuk bagian penerimaan
<uses-permission android:name="android.permission.SEND_SMS">
</uses-permission>
<uses-permission android:name="android.permission.RECEIVE_SMS">
</uses-permission>
Tahapan pertama buat layout Untuk xml dengan nama:main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Masukan Nomor Penerima"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/txtPhonenumber"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Message"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="150px"
android:id="@+id/txtMessage"
android:gravity="top"/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/btnSendSMS"
android:text="Send Message"/>
</LinearLayout>
3. txtMessage = (EditText) findViewById(R.id.txtMessage);
btnSendMessage.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String PhoneNumber = txtPhone.getText().toString();
String Message = txtMessage.getText().toString();
if (PhoneNumber.length() > 0 && Message.length() > 0)
sendSMS(PhoneNumber, Message);
else
Toast.makeText(getBaseContext(), "Please Enter both phone number
and Message.", Toast.LENGTH_SHORT).show();
}
});
}
//---send on sms message to another device
private void sendSMS(String PhoneNumber, String Message) {
String SENT = "SMS Send";
String DELIVERED = "SMS Delivered";
PendingIntent SendPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT),
0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new
Intent(DELIVERED), 0);
//when sms has been sent
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode()) {
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "SMS SENT",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
Toast.makeText(getBaseContext(), "Generic Falliure",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
Toast.makeText(getBaseContext(), "No service",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
Toast.makeText(getBaseContext(), "NUL PDU",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
Toast.makeText(getBaseContext(), "Radio off",
Toast.LENGTH_SHORT).show();
break;
}
}
}, new IntentFilter(SENT));
//when sms was delivered
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode()) {
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "SMS delivered",
4. Toast.LENGTH_SHORT).show();
break;
case Activity.RESULT_CANCELED:
Toast.makeText(getBaseContext(), "SMS not Delivered",
Toast.LENGTH_SHORT).show();
break;
}
}
}, new IntentFilter(DELIVERED));
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(PhoneNumber, null, Message, SendPI, deliveredPI);
}
}
Broadcast Receiver
Broadcast Receiver adalah sebuah komponen Android yang berfungsi untuk melakukan broadcast pesan
dari aplikasi lain atau dari sistem itu sendiri. Pesan di broadcast disebeut event atau intent. Aplikasi
melakukan broadcast untuk memberi tahu aplikasi lainya bahwa beberapa data telah di unduh ke
perangkat yang tersedia, lalu penerima broadcast akan menerima pesan untuk melakukan transfer
informasi.
5. Untuk membuat brodcast receiver, definisikan subclass dari class BroadcastReceiver dan
implementasikan method onReceive(). Selanjutnya registerkan broadcast receiver, dapat melalui cara
dinamis pada java, atau secara statik pada AndroidManifest.
Contoh penggunaan broadcast receiver, pada contoh ini class AlarmReceiver merupakan
subclass/turunan dari BroadcastReceiver yang menampilkan pesan Toast jika broadcast intent yang
datang mempunyai action ACTION_SHOW_TOAST.
private class AlarmReceiver extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent)
{ if (intent.getAction().equals(ACTION_SHOW_TOAST)) {
CharSequence text = "Broadcast Received!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
}
}
Untuk meregisterkan broadcast receiver terdapat dua buah cara yaitu secara statik pada manifest atau
secara dinamis pada activity.
Contoh penerapan disini nama subclass dari BroadcastReceiver adalah AlarmReceiver. Receiver tidak di
eksport, yang berarti tidak ada aplikasi lain yang mengirim broadcast pada aplikasi ini. Receiver
mengandung intent-filter yang mengecek apakah terdapat intents yang mengandung action dengan
nama ACTION_SHOW_TOAST.
“kirimBroadcast” pada MainActivity. Berikut kode untuk tampilan layout.
<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"