Kali ini kita akan membahas mengenai bagaimana membuat aplikasi kirim sms dengan
1. 1 buah laptop/ komputer
2. Software Sun
Java
(TM)
Wireless Toolkit 2.5.2_01 for CLDC
3. Notepad, Notepad++ atau
TextPad untuk mengetik listing programnya
Langkah –
Langkah
:
2. Selanjutnya akan
muncul kotak dialog setting,
kita klik OK saja. Setelah itu akan tampil
tulisan
§ Creating project “smsKu”
§ Place
Java source files in “ C:\MyDocuments\ Java\j2mewtk\252\apps\smsKu\src”
§ Ket: Disinilah tempat kita menyimpan source
atau koding program
yang kita
buat yaitu pada
direktori
SRC
§ Place
Aplication resource
files in “ C:\MyDocuments\ Java\j2mewtk\252\apps\smsKu\res”
§ Ket: Disinilah tempat kita menyimpan file gambar atau animasi yang kita buat
yaitu pada direktori RES
§ Place
Aplication library
files in “ C:\MyDocuments\ Java\j2mewtk\252\apps\smsKu\lib”
§ Ket: Disinilah tempat kita
menyimpan
file
fungsi yang
kita buat yaitu
pada
direktori LIB
3. Kita beralih ke
Notepad, dan ketikkan
listing program berikut:
import java.util.*;
import
java.io.IOException;
import
javax.microedition.io.*;
import
javax.microedition.lcdui.*; import javax.wireless.messaging.*;
import
javax.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");
exitCom = new Command("keluar", Command.EXIT, 1);
replyCom =
new Command("Adriansyah MS", Command.SCREEN, 1);
backCom =
new Command("Kembali", Command.BACK, 3); clrCom = new Command("Hapus
Tulisan", Command.OK, 2); sendCom
= new Command("Adriansyah MS", 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 (dak penting
jugo 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", "Aplikasi SMS menggunakan j2me, "
+ "source-nya saya dapatkan
dari
“KAMU” J ",
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();
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();
}
}
}
Simpan program
tersebut pada direktori src
seperti
di atas dengan nama smsKu.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.
4. 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 atau lebih agar tampilan
handphone menjadi
2-3 buah dengan nomor yang berbeda.
0 komentar:
Posting Komentar