Membuat Aplikasi Kirim SMS Menggunakan Java J2ME
2. Selanjutnya akan
muncul kotak dialog
setting, kita klik OK
saja. Setelah itu akan tampil
tulisan
a. Creating project “smsKu”
b. Place Java source
files in “I:\Documents and
Settings\miae\j2mewtk\2.5.2\apps\smsKu\src”
Ket: Disinilah tempat kita menyimpan source atau koding
program yang kita buat yaitu pada direktori SRC
c. Place Aplication
resource files in “I:\Documents and
Settings\miae\j2mewtk\2.5.2\apps\smsKu\res”
Ket: Disinilah tempat kita menyimpan file gambar atau animasi yang kita buat yaitu
pada direktori RES
3. Kita beralih ke
TextPad, dan ketikkan listing progra2.54 berikut:
import java.util.*;
import java.io.IOException; import javax.microedition.io.*;
importjavax.microedition.lcdui.*;
import javax.wireless.messaging.*;
importjavax.microedition.midlet.*;
public class smsKu extends MIDlet implements
CommandListener, Runnable, MessageListener {
Display display; Form form;
List menuList; //list untuk menu awal
Command exitCom, replyCom, backCom, clrCom, sendCom;
//command yg digunakan
TextBox textSmsMasuk, textSmsKeluar; //tempat text sms yg
masuk & yg
mau dikirim
TextField textNo; //untuk tempat memasukan no tujuan
String port, isiSmsKeluar; //port dan isi sms
Thread thread; String[] connections; boolean done;
MessageConnection smsconn; Message msg;
public smsKu() {
display = Display.getDisplay(this);
form = new Form("sms-an Yuk");
display.setCurrent(textSmsKeluar);
} else if (c == sendCom) {
isiSmsKeluar = textSmsKeluar.getString();
textSmsKeluar.setString("");
kirim();
}
}
}
public void run() { //untuk menerima sms yang masuk try {
msg = smsconn.receive();
String senderAddress = msg.getAddress(); Date waktuSms =
msg.getTimestamp();
if (msg instanceof TextMessage) {
String isiSmsMasuk = ((TextMessage) msg).getPayloadText();
terima(isiSmsMasuk, senderAddress, waktuSms);//memasukan sms
ke texbok
} tutupKoneksi(); bukaKoneksi();
} catch (IOException e) {
}
}
public void notifyIncomingMessage(MessageConnection conn) {
if (thread == null) {
done = false;
thread = new Thread(this);
thread.start();
}
}
}
4. Simpan
program tersebut pada
direktori src seperti
di atas dengan
nama dini.java (nama file harus
sama dengan nama kelas pada saat kita membuat new project). Selanjutnya kita
kembali lagi ke Sun Java (TM) Wireless Toolkit 2.5.2_01 for CLDC.
5. Kemudian, klik Build untuk mengetahui apakah program yang kita buat sudah benar atau belum.
Jika masih terdapat
kesalahan maka perhatikan
kesalahannya pada baris.
Kesalahan dan lokasi kesalahan yang ditunjukan pada layar konsul. Perbaiki kesalahan program
tersebut hingga selesai
simpan dan ulangi Build kembali. Setelah
proses build selesai jika tidak terdapat kesalahan, klik Run. Kita bisa coba
jalankan aplikasi buatan kita. Dalam percobaan aplikasi ini, kita klik Run
sebanyak 2kali agar tampilan handphone menjadi 2 buah dengan nomor yang
berbeda.
6. Berikut adalah urutan hasil tampilan aplikasi yang telah
dibuat.
Tampilan Ketika
Program Dijalankan
Tampilan
Awal Program dan Tulis SMS kirim nomor sesuai nomor tujuan
Tampilan ketika SMS yang dikirim telah sampai di nomor
tujuan
Cara memindahkan file Aplikasi SMS j2me ke dalam Handphone
1. Buka aplikasi Sun Java (TM) Wireless Toolkit 2.5.2_01 for
CLDC. Lalu klik Open Project. Lalu
pilih project nya kemudian klik lagi open project.
2. Build terlebih
dahulu aplikasi yang akan dipindahkan ke handphone dengan cara klik tombol
Build seperti gambar di bawah ini.
3. Setelah build selesai, klik tab Package, lalu klik Create Package.
4. Setelah package selesai, buka aplikasi pada folder
penyimpanan project di folder bin.
Dalam hal ini folder
terletak di
I:\Users\miae\j2mewtk\2.5.2\apps\smsKu.
5. Isi folder bin
tadi adalah seperti di gambar di bawah ini. File yang akan dipindahkan ke dalam
handphone adalah file dengan
ekstensi .jar atau Executable Jar File.
exitCom = new Command("keluar", Command.EXIT, 1);
replyCom = new Command("balas", Command.SCREEN, 1); backCom = new
Command("Kembali", Command.BACK, 3); clrCom = new Command("Hapus
Tulisan", Command.OK, 2); sendCom = new Command("Kirim",
Command.OK, 1); menuList = new List("Menu sms Ku", List.IMPLICIT);
port = "4321"; //port yang aku gunakan, ganti
sesuai keinginan masing masing
textSmsMasuk = new TextBox(null, null, 500, TextField.ANY);
textSmsKeluar = new TextBox("Silakan Menulis Sms",
null,
500, TextField.ANY);
textNo = new TextField("Masukan Nomor Tujuan",
"",
15, TextField.PHONENUMBER);
}
public void startApp() {
bukaKoneksi(); //disini membuka koneksi untuk siap menerima
sms masuk menu(); // bikin tampilan menu awal
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
//sebelum aplikasinya keluar ato mati koneksi ditutup dulu
done = true;
thread = null;
if (smsconn != null) {
try {
smsconn.close();
} catch (IOException e) {
}
}
//disini mati deh aplikasi kita notifyDestroyed();
}
public void menu() { //membuat menu awal untuk sementara ini
baru ada 3 menu
menuList.append("Tulis Sms", null);//1. menu tulis
sms baru menuList.append("about", null);//2. menu about (gak penting
sih sebenarnya)
menuList.append("Keluar", null);//3. menu untuk
keluar aplikasi menuList.addCommand(exitCom); //add command keluar
menuList.setCommandListener(this);
display.setCurrent(menuList);
}
public void tulisSms() { //membuat textbox untuk menulis sms
baru textSmsKeluar.addCommand(sendCom); //add command untuk kirim
textSmsKeluar.addCommand(clrCom); // add command untuk clear
text textSmsKeluar.addCommand(backCom); //add command untuk kembali kemenu awal
textSmsKeluar.setCommandListener(this);
display.setCurrent(textSmsKeluar);
}
public void masukNo() { //disini untuk memasukan nomor
tujuan form.setTitle("Sms Siap dikirim"); //udah taukan yang ini?
form.append(textNo); //menambahkan textField untuk nomor tujuan
form.addCommand(backCom); //menambahkan command untuk kembali ke menu awal
form.addCommand(sendCom); //menambahkan command untuk
mengirim
form.setCommandListener(this);
display.setCurrent(form);
}
public void kirim() { //disini sms yang udah ditulis dikirim
dgn perintah
new Thread(new Runnable() {
//perhatiin ya public void run() { try {
String isiSms = isiSmsKeluar;
String noTujuan = textNo.getString();
String address = "sms://" + noTujuan +
":" + port;
MessageConnection smsConnKir = null; Message isiSmsNya =
null;
smsConnKir = (MessageConnection) Connector.open(address); TextMessage
txtmessage =
(TextMessage)
smsConnKir.newMessage(MessageConnection.TEXT_MESSAGE);
txtmessage.setAddress(address);
txtmessage.setPayloadText(isiSms); isiSmsNya = txtmessage;
smsConnKir.send(isiSmsNya);
} catch (Throwable t) {
t.printStackTrace();
}
}
}).start();
public void terima(String isi, String no, Date tgl) {
//tempat sms masuk
String nonya = fixNomer(no);
textSmsMasuk = new TextBox("Sms dari:" + nonya +
" " + tgl, isi, isi.length(), TextField.ANY);
textSmsMasuk.addCommand(replyCom);
textSmsMasuk.addCommand(exitCom);
textSmsMasuk.setCommandListener(this); display.setCurrent(textSmsMasuk);
}
public void bukaKoneksi() { //membuka koneksi agar bisa
menerima sms yg masuk
String smsConnection = "sms://:" + port;
done = true;
thread = null;
try {
smsconn = (MessageConnection) Connector.open(smsConnection);
smsconn.setMessageListener(this);
} catch (IOException ioe) {
ioe.printStackTrace();
}
connections = PushRegistry.listConnections(true);
done = false;
thread = new Thread(this);
thread.start();
}
public void tutupKoneksi() { //untuk menutup koneksi sms try
{
smsconn.close();
} catch (IOException e) {
}
}
public String fixNomer(String no) {
//dari format no gini "sms://+6285XXXX" jadi
"+6285XXX" gitu fungsinya
String hs = null;
hs = no.substring(6, no.length());
return hs;
}
public void commandAction(Command c, Displayable d) {
if (c == exitCom) {
destroyApp(true);
}
if (d == menuList) {
if (menuList.isSelected(0)) {
tulisSms();
} else if (menuList.isSelected(1)) {
Alert about = new Alert("About", "Selamat
Datang di Fhadil, " + "Mari Belajar Java",
null, AlertType.INFO);
display.setCurrent(about);
} else if (menuList.isSelected(2)) {
destroyApp(true);
}
}
if (d == textSmsKeluar) { if (c == sendCom) {
form.deleteAll(); masukNo();
} else if (c == clrCom) {
textSmsKeluar.setString("");
} else if (c == backCom) {
display.setCurrent(menuList);
}
}
if (d == textSmsMasuk) { if (c == exitCom) {
display.setCurrent(menuList);
} else if (c == replyCom) {
tulisSms();
}
}
if (d == form) {
if (c == backCom) {
form.deleteAll();
exitCom = new Command("keluar", Command.EXIT, 1);
replyCom = new Command("balas", Command.SCREEN, 1); backCom = new
Command("Kembali", Command.BACK, 3); clrCom = new Command("Hapus
Tulisan", Command.OK, 2); sendCom = new Command("Kirim",
Command.OK, 1); menuList = new List("Menu sms Ku", List.IMPLICIT);
port = "4321"; //port yang aku gunakan, ganti
sesuai keinginan masing masing
textSmsMasuk = new TextBox(null, null, 500, TextField.ANY);
textSmsKeluar = new TextBox("Silakan Menulis Sms",
null,
500, TextField.ANY);
textNo = new TextField("Masukan Nomor Tujuan",
"",
15, TextField.PHONENUMBER);
}
public void startApp() {
bukaKoneksi(); //disini membuka koneksi untuk siap menerima
sms masuk menu(); // bikin tampilan menu awal
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
//sebelum aplikasinya keluar ato mati koneksi ditutup dulu
done = true;
thread = null;
if (smsconn != null) {
try {
smsconn.close();
} catch (IOException e) {
}
}
//disini mati deh aplikasi kita
notifyDestroyed();
}
public void menu() { //membuat menu awal untuk sementara ini
baru ada 3 menu
menuList.append("Tulis Sms", null);//1. menu tulis
sms baru menuList.append("about", null);//2. menu about (gak penting
sih sebenarnya)
menuList.append("Keluar", null);//3. menu untuk
keluar aplikasi menuList.addCommand(exitCom); //add command keluar
menuList.setCommandListener(this);
display.setCurrent(menuList);
}
public void tulisSms() { //membuat textbox untuk menulis sms
baru textSmsKeluar.addCommand(sendCom); //add command untuk kirim
textSmsKeluar.addCommand(clrCom); // add command untuk clear
text textSmsKeluar.addCommand(backCom); //add command untuk kembali kemenu awal
textSmsKeluar.setCommandListener(this);
display.setCurrent(textSmsKeluar);
}
public void masukNo() { //disini untuk memasukan nomor
tujuan form.setTitle("Sms Siap dikirim"); //udah taukan yang ini?
form.append(textNo); //menambahkan textField untuk nomor tujuan
form.addCommand(backCom); //menambahkan command untuk kembali ke menu awal
form.addCommand(sendCom); //menambahkan command untuk
mengirim
form.setCommandListener(this);
display.setCurrent(form);
}
public void kirim() { //disini sms yang udah ditulis dikirim
dgn perintah
new Thread(new Runnable() {
//perhatiin ya public void run() { try {
String isiSms = isiSmsKeluar;
String noTujuan = textNo.getString();
String address = "sms://" + noTujuan +
":" + port; MessageConnection smsConnKir = null;
Message isiSmsNya = null;
smsConnKir = (MessageConnection) Connector.open(address); TextMessage
txtmessage =
(TextMessage)
smsConnKir.newMessage(MessageConnection.TEXT_MESSAGE);
txtmessage.setAddress(address);
txtmessage.setPayloadText(isiSms); isiSmsNya = txtmessage;
smsConnKir.send(isiSmsNya);
} catch (Throwable t) {
t.printStackTrace();
}
}
}).start();
}
public void terima(String isi, String no, Date tgl) {
//tempat sms masuk
String nonya = fixNomer(no);
textSmsMasuk = new TextBox("Sms dari:" + nonya +
" " + tgl, isi, isi.length(), TextField.ANY);
textSmsMasuk.addCommand(replyCom);
textSmsMasuk.addCommand(exitCom);
textSmsMasuk.setCommandListener(this); display.setCurrent(textSmsMasuk);
}
public void bukaKoneksi() { //membuka koneksi agar bisa
menerima sms yg masuk
String smsConnection = "sms://:" + port;
done = true;
thread = null;
try {
smsconn = (MessageConnection) Connector.open(smsConnection);
smsconn.setMessageListener(this);
} catch (IOException ioe) {
ioe.printStackTrace();
}
connections = PushRegistry.listConnections(true);
done = false;
thread = new Thread(this);
thread.start();
}
public void tutupKoneksi() { //untuk menutup koneksi sms try
{
smsconn.close();
} catch (IOException e) {
}
}
public String fixNomer(String no) {
//dari format no gini "sms://+6285XXXX" jadi
"+6285XXX" gitu fungsinya
String hs = null;
hs = no.substring(6, no.length());
return hs;
}
public void commandAction(Command c, Displayable d) {
if (c == exitCom) {
destroyApp(true);
}
if (d == menuList) {
if (menuList.isSelected(0)) {
tulisSms();
} else if (menuList.isSelected(1)) {
Alert about = new Alert("About", "Selamat
Datang di Fhadil, " + "Mari Belajar Java",
null, AlertType.INFO);
display.setCurrent(about);
} else if (menuList.isSelected(2)) {
destroyApp(true);
}
}
if (d == textSmsKeluar) { if (c == sendCom) {
form.deleteAll(); masukNo();
} else if (c == clrCom) {
textSmsKeluar.setString("");
} else if (c == backCom) {
display.setCurrent(menuList);
}
}
if (d == textSmsMasuk) { if (c == exitCom) {
display.setCurrent(menuList);
} else if (c == replyCom) {
tulisSms();
}
}
if (d == form) {
if (c == backCom) {









0 komentar:
Posting Komentar