Baik, langsung saja kita buat aplikasi j2me. aplikasi kali ini adalah aplikasi paling favorit di hapir seluruh tutorial j2me yang pernah saya baca di internet. Mari kita bikin, aplikasi mengirim dan menerima sms dengan j2me.
Untuk yang pertama, mari kita buat aplikasi j2me untuk mengiriim sms
import javax.microedition.io.Connector; import javax.microedition.lcdui.*; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; import javax.wireless.messaging.MessageConnection; import javax.wireless.messaging.TextMessage; public class kirimSMS extends MIDlet implements CommandListener,Runnable { private Form sendMessageForm; private TextField number, msg; private Command cmdOK,cmdExit; private String telpNum, isiPesan = ""; public SendMidlet(){ cmdExit = new Command("Back", Command.EXIT, 2); cmdOK = new Command("Send", Command.SCREEN, 2); sendMessageForm = new Form("Send Message"); msg = new TextField("Message:", null, 50, TextField.ANY); number = new TextField("Telepon:", null, 15, TextField.PHONENUMBER); sendMessageForm.append(number); sendMessageForm.append(msg); sendMessageForm.addCommand(cmdOK); sendMessageForm.addCommand(cmdExit); sendMessageForm.setCommandListener(this); } protected void destroyApp(boolean arg0) { notifyDestroyed(); } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { Display.getDisplay(this).setCurrent(sendMessageForm); } public void commandAction(Command arg0, Displayable arg1) { if(arg0==cmdOK){ telpNum = number.getString(); isiPesan = msg.getString(); new Thread(this).start(); number.setString(""); msg.setString(""); Display.getDisplay(this).setCurrent(sendMessageForm); }else if(arg0==cmdExit){ destroyApp(true); } } public void run() { try{ String nomorTelp = "sms://" + telpNum + ":1234"; MessageConnection conn = (MessageConnection)Connector.open(nomorTelp); TextMessage msg = (TextMessage) conn.newMessage(MessageConnection.TEXT_MESSAGE); msg.setPayloadText(isiPesan); conn.send(msg); conn.close(); }catch(Exception e){ e.printStackTrace(); } } }
Dan ini adalal hasil penampakan script j2me diatas
Berikutnya adalah membuat listener penerima sms diatas, sama gampangnya. Kawan isa copy paste script dibawah ini pasti jalan
import javax.microedition.io.Connector; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.TextBox; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; import javax.wireless.messaging.Message; import javax.wireless.messaging.MessageConnection; import javax.wireless.messaging.TextMessage; public class terimaSMS extends MIDlet implements Runnable, CommandListener { private TextBox tb; private String text = "Menunggu pesan..."; private Command okComand; public terimaSMS() { tb = new TextBox("Hello MIDlet", text, 150, 0); } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { Display.getDisplay(this).setCurrent(tb); new Thread(this).start(); } public void changeScreen() { tb = new TextBox("SMS MIDlet", text, 150, 0); Display.getDisplay(this).setCurrent(tb); } public void addConfirmation(String msg) { tb = new TextBox("SMS MIDlet", text, 150, 0); tb.setString(msg); okComand = new Command("OK",Command.OK,1); tb.addCommand(okComand); tb.setCommandListener(this); Display.getDisplay(this).setCurrent(tb); } public void run() { try { MessageConnection rconn = (MessageConnection) Connector .open("sms://:1234"); while (true) { Message msg = rconn.receive(); if (msg instanceof TextMessage) { TextMessage tmsg = (TextMessage) msg; String msgOut = tmsg.getPayloadText(); addConfirmation(msgOut); } } } catch (Exception e) { e.printStackTrace(); } } public void commandAction(Command arg0, Displayable arg1) { } }
dan penampakannya akan sperti berikut
Trus, cara coba kirim sms gimana? Ini lebih gampang lagi
1. Jalakan aplikasi kirimSMS dan terimaSMS
2. Pada aplikasi kirim sms nomer tujaannya disusaikan dgn port dimana aplikasi terima sms di jalankan. pada aplikasi diatas, apalikasi j2me terimaSMS jalan di port +5550000. maka di aplikasi kirimSMS nomer tujuannya adalah +5550000
hasilnya seperti dibawah ini
26 comments:
Sori mas ganggu
saya masih bru bljar java tepatnya J2ME ini, yang sysingin tanyankan, anda menggunakan program apa?NetBean?apa J2ME Wireless Toolkit?
bisa kasih tutor dari awal buka project mas?
terima kasih
Sama , saya juga barus saja belajar. program diatas saya tulis dengan ECLIPSE. skrng baru tau klo dengan netbean lebih mudah.
nanti akan saya porting bagai mana membuat program j2me step by step nya
iy mas saya tunggu tutornya :D
senang bisa berkunjung disini
malem, wah saya juga baru latihan buat apps sms nih.. mohon bantuan plis..
sori, lgsung nanya 2 p'tnyaan ya..
pertama
":1234" di method run() buat apa ya..?
ini nih=> String nomorTelp = "sms://" + telpNum + ":1234";
kedua
di class terimaSMS, disitu TextBox tb di instance 2 kali di method changeScreen() sama addConfirmation(String msg, kalo satu aja bisa gak ya..?
trims buat jawabannya..
@anonim
:1234 adalah listening port. jadi komunikasi sms tersebut menguunakan port 1234.
Pada kenyataan jika digunakan pada hp, hilangkan ":1234". Kecuali jika anda memang membuat aplikasi khusus yang menggunakan port untuk menerima sms.
kl listenng port bwt aplikasi MMS gmn y kak?? lg bikin aplikasi ni..
kalo d guanakan di HP beneran bisa g ya? padahal sudah saya install di hp SONER k320i, tp kok tkok g bisa ngirim ya...??
mohon bantuaanya donk....
Jadi nambah ilmu nih, makasih ..
public sendmidlet ketika dipindah ke netbeans ko error, yg dikelas kirimsms.
bagaimana solusinya??
ko midletnya kirimSMS, constructornya SendMIDlet ?
iya, konstruktornya diganti tuh, jadi kirimSMS, klo tetep itu, nantinya ga bisa jalan dan akan ada 1 error pada baris konstruktornya,,
ohh iya mas, saya udah praktekan source code dr mas, tapi pada saat saya kirim, kenapa di terimaSMS tidak ada sms yang masuk ya mas? mohon penjelasannya
terima kasih
Iya bener harusnya sama, untuk di eclipse masih bisa jalan. tapi jika menggunakan netbeans gak jalan.
kebetulan saya pake eclipse
jika tidak sampai ke penerima perhatikan point ini
" Pada aplikasi kirim sms nomer tujaannya disusaikan dgn port dimana aplikasi terima sms di jalankan. pada aplikasi diatas, apalikasi j2me terimaSMS jalan di port +5550000."
biasanya masalahnya disini
mas, aku nyoba yang kirimSMS kok g muncul tampilanya y waktu d run?
aku baru nyoba pakai eclipse sih, n ud baca postingan mas yg "Step By Step J2ME Menggunakan ECLIPSE" jg...
oya mas, itu kirim n terima smsnya dalam 1 aplikasi atau jadi 2 aplikasi yg berbeda y?
terima kasih
@anonim, sampean harus bikin 2 aplikasi. 1 untuk kirim, 1 lagi untuk terima ( ini hanya untuk testing )
jika real nya, anda cuma harus bikin 1 aplikasi kirim
1 lagi untuk yang ingin belajar j2me. Saran ya!! perhatikan
"DARIPADA ANDA BUANG WAKTU BELAJAR J2ME, MEDING LSG BELAJAR BAHASA KETURUNANNYA SAJA"
Misal, anda mau belajar bikin aplikasi android, lsg belajarlah pemrograman android. http://developer.android.com
mau bikin aplikasi BB, ya lsg saja ke pemrograman BB.
Jika anda programer java, tentu lebih mudah paham.
j2me sudah ketinggalan jaman
om kok pas ane coba run. ada pesan error " aplication may have done an illegal poperation".
padahal di sintak udah gk ada error.
dibantu ya om.. hhe
permisi..
saya mhasiswa tingkat akhir dari Sanata Dharma mau tnya,,
klo kita membuat aplikasi dari pc menggunakan bantuan library SMSLib dan AT-Commands lalu dikirim ke port-sms J2ME yg sudah ditentukan, ketika saya kirim dengan setingan encoding 7-bit ato 8-bit SMS dpat terkirim dan masuk pada inbox default HP,
gimana agar SMS yg dikirm dari PC bisa diterima oleh port-sms aplikasi J2ME yg saya buat???
bagaimana cara kirim SMS dari J2SE ke J2ME?
saya mencoba slalu masuk pada inbox bawan HP bukan inbox dari J2ME yg saya buat..
terima kasih,,,
mohon bimbingannya…
tlg yaa,,
andriyudha@ymail.com
@anonim yang lagi bikin tugas akhir.
Setahu saya, dari perintah at-command GSM tidak pernah berjumpa mengirimkan ke port tertentu.
Jika lewat j2me, ada.
Dari curhatnya, sepertinya bingung bikin aplikasi sms container.
Ada gambaran yang mungkin bisa membantu.
Anda bikin 2 aplikasi 1 listener port 1234, dan 1 untuk send sms ke port 1234 .(jelas ini bukan masalah bagi anda)
Lalu bagaimana jika sms tersebut dikirim tanpa aplikasi send sms port 1234?
Caranya, copy saja inbox anda lalu simpan ke RMS, dan RMS dibaca oleh container.
mas mau nanya nih, kan saya udah buat aplikasi sms nya udh ada inbox sama outbox nya jg tuh, psan kluarnya udh bisa kesimpan d outbox tpi pesannya masuknya malahan gak kesimpan, gmn ya it? jadi bingung nih, saya kn newbi jg nih, mnta bntuan nya mas :)
numpang tanya, kalau sms berbasis gprs caranya gimana?! ada solusi.. (buat T.A)
Jazakumullah khairan :)
untuk sms berbasis gprs, ada solusi gan..?!
buat tugas akhir, jazakumullah khairan..
@anonim, tidak pernah ada sms berbasis gprs.
tapi jika seperti ini bisa, "app j2me kirim data ke server (web service), lalu server ngirim sms pada nomer yang dimaksud"
mau nanya mas...masih baru di j2me
satu halaman sms kan kena 160 karakter
letak programnnya dimana y????supaya kita tau berapa jumlah sms yg sudah qt kirim 1 atau 2 halaman sms
mas mau tanya klo buat inbox sms bagaimana ? :D
Makasi mas
terkait dengan penerapan J2ME, bisa diunduh artikel berikut http://repository.gunadarma.ac.id/bitstream/123456789/1219/1/17110075.pdf
bisa ditolong kirim listing rms-nya gan buat simpan sms yg diterima dikotak masuk dan sms yg dikirim dikotak keluar ???
trims
Post a Comment