PDA

View Full Version : مبتدی: ارسال و دریافت اس ام اس



bobrus
یک شنبه 08 اردیبهشت 1392, 12:27 عصر
سلام به همه دوستان
خیلی دنبال نمونه کد و یا توضیح در این مورد گشتم ولی جایی گیر نیاوردم

من در جاوا تازه کارم و از دوستان می خوام که روش ارسال و دریافت پیامک توسط برنامه توضیح بدن اگه نمونه کد هم داشته باشن که خیلی خوب میشه
توضیح اینکه می خوام یه چیزی شبیه نرم افزارهای موبایل بانک (ملت - ملی و ...) بنویسم
با تشکر فراوان

bobrus
دوشنبه 16 اردیبهشت 1392, 08:31 صبح
بسیار خوشحالم که جواب یه همچین سوالی هیچ جا داده نشده یعنی هیچ کس بلد نیست؟؟؟؟؟

mojtabaa1975
دوشنبه 16 اردیبهشت 1392, 08:41 صبح
با سلام
شما ابتدا باید سرویس ارسال پیامک را خریداری کنید .
بعداز خریداری سرویس ،شرکت فروشنده سرویس خودش نحوه فراخوانی و ارسال اس ام اس و مانیتورینگ آن را با یک کاتالوگ بهتون توضیح میده.
برای خریداری سرویس ارسال اس ام اس می تونی تو اینترنت سرچ کنی .
موفق باشین.

bobrus
یک شنبه 22 اردیبهشت 1392, 09:25 صبح
سلام آقا مجتبی از اینکه زحمت کشیدی جواب دادی ممنون
ولی اول اینکه سرویس ارسال پیامک برای استفاده اینترنتی هستش و نرم افزارهایی مثل موبایل بانک ها هم از این روش استفاده نمی کنن
و دوم اینکه من دقیقا می خوام یه چیزی مثل موبایل بانک درست کنم و تا اینجا می دونم که پیامک باید به یه پورت خاص فرستاده بشه و نرم افزار هم توسط پوش رجیستری تو حافظه باشه و به اون پورت گوش کنه و در صورت اومدن پیامک اونو دریافت کنه و نمایش بده
حالا مشکل اینجاست که من نمونه کد برای انکار دارم چندتا مطلب هم در موردش خوندم ولی نتونستم پیامک دریافت کنم

spiderman200700
یک شنبه 22 اردیبهشت 1392, 12:43 عصر
سلام
روی هر پورتی میتونی ارسال کنی ولی برای دریافت از پورت 0 نمیتونی استفاده کنی.
ارسال:

Thread sendmesThread = new Thread(new Runnable() {
public void run() {
try {
MessageConnection mc = (MessageConnection) Connector.open("sms://" + phoneNumber + ":" + 5000);
TextMessage tm = (TextMessage) mc.newMessage(MessageConnection.TEXT_MESSAGE);
tm.setPayloadText(message);
mc.send(tm);
mc.close();

} catch (IOException ex) {
ex.printStackTrace();
}
}
});

sendmesThread.start();
دریافت:

Thread receive = new Thread(new Runnable() {
MessageConnection ms;

public void run() {

try {
ms = (MessageConnection) Connector.open("sms://:" + 7000);
Date zaman = new Date();
TextMessage tempmes = (TextMessage) ms.receive();
Midlet.messageReceived = true;
Midlet.ReceivedThatWeDontKnowIsRandom = tempmes.getPayloadText();
} catch (SecurityException eds) {
eds.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
});
receive.start();
موفق باشی

bobrus
دوشنبه 30 اردیبهشت 1392, 19:16 عصر
سلام
بسیار سپاس گذارم که بلاخره یکی پیداشد و یه جوابی داد حالا یه چند تا سوال بچه گونه
1- چرا پورت ارسال 5000 ولی پورت دریافت 7000
2- یه توضیح هم در مورد نحوه استفاده اش بدین مثلا من ندونستم که messageReceived و ReceivedThatWeDontKnowIsRandom چطور باید تعریف کنم که ایراد نگیره
3- اینreceive.start و sendmesThread.start هایی که نوشتین تو کجا باید استفاده کنم؟ من تو فانکشن StartAPP گذاشتمشون درسته؟
4- آیا باید این دوتا فانکشنی که دادین توی 2تا برنامه جدا باشه یا هردو در کنار هم کار می کنن؟
بازهم از زحمت شما متشکرم

spiderman200700
دوشنبه 30 اردیبهشت 1392, 21:43 عصر
خواهش میکنم
1. کاملا اختیاریه
2. اونا توی برنامه من بودن. شما میتونی sms ای که دریافت کردی رو هر جور که میخوای نمایش بدی یا هر کار دیگه ای باهاش بکنی. مثلا اینطوری:
TextMessage tempmes = (TextMessage) ms.receive();
String senderTpNo = tempmes.getAddress(); // get the receiving sms phone number
String senderMsg = tempmes.getPayloadText();// get the receiving sms message
حالا شما دو تا String داری که میتونی هر جوری که خواستی ازش استفاده کنی.

3. برای هر کدوم از بخش های دریافت و ارسال یه متد بنویس و اون قسمت رو به صورت کامل داخلش قرار بده. حالا با فراخوانی متدی که تعریف کردی میتونی ارسال یا دریافت رو انجام بدی.
4.نه لازم نیست دو تا برنامه جدا باشه. میتونی با این دو متد یه کلاس ایجاد کنی و هر چند بار که میخوای ارسال و دریافت رو توی یه برنامه انجام بدی.

اگه بازم مشکلی داری توی این قسمت، بپرس.
موفق باشی

bobrus
سه شنبه 31 اردیبهشت 1392, 18:57 عصر
سلام من با راهنمایی شما این برنامه رو نوشتم اگه فرصت داشتین یه بررسی کنید اصلاحات لازم بهم بگید
بعدش من چطور تست کنم ببینم درسته یا نه؟



import java.io.IOException;
import java.util.Date;
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.Form;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.*;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.MessageListener;
import javax.wireless.messaging.TextMessage;

public class mldUI extends MIDlet implements CommandListener{

TextField txtMsg =null;
TextField TxtPhone=null;

TextField Receivedmsg=null;
private Display dsply ;
/*private Display rdsply;*/
Form frmMain ;
Form frmRecive;
Command exit;
Command send;

public mldUI(){

dsply=Display.getDisplay(this);
send=new Command("Send",Command.OK,1);
exit=new Command("exit", Command.EXIT,0);
TxtPhone=new TextField("PhoneNumber:", "", 12, TextField.NUMERIC);
txtMsg=new TextField("message","",69,TextField.ANY);
frmMain=new Form("Test Sms");
frmMain.append(TxtPhone);
frmMain.append(txtMsg);
frmMain.addCommand(send);
frmMain.addCommand(exit);
frmMain.setCommandListener(this);



}

public void commandAction(Command c,Displayable d)
{
if(c==send)
{
sendmesThread.start();
dsply=Display.getDisplay(this);
TxtPhone=new TextField("PhoneNumber:", "", 12, TextField.NUMERIC);
Receivedmsg=new TextField("Receive:", "", 69, TextField.ANY);
frmRecive=new Form("Test Receive Sms");
frmRecive.append(TxtPhone);
frmRecive.append(Receivedmsg);
frmRecive.setCommandListener(this);
dsply.setCurrent(frmRecive);
receive.start();
}
if(c==exit)
{
destroyApp(true);

}
}

Thread sendmesThread = new Thread(new Runnable() {
public void run() {
String phoneNumber= TxtPhone.getString();
String message=txtMsg.getString();

try {
MessageConnection mc = (MessageConnection) Connector.open("sms://" + phoneNumber + ":" + 5000);
TextMessage tm = (TextMessage) mc.newMessage(MessageConnection.TEXT_MESSAGE);
tm.setPayloadText(message);
mc.send(tm);
mc.close();

} catch (IOException ex) {
ex.printStackTrace();
}
}
});

Thread receive = new Thread(new Runnable() {
MessageConnection ms;

public void run() {


try {
ms = (MessageConnection) Connector.open("sms://:" + 5000);
Date zaman = new Date();
TextMessage tempmes = (TextMessage) ms.receive();
/*mldUI.messageReceived = true;
mldUI.ReceivedThatWeDontKnowIsRandom = tempmes.getPayloadText();*/
String MsgRecieved=tempmes.getPayloadText();
String TelNo=tempmes.getAddress();
Receivedmsg.setString(MsgRecieved);
TxtPhone.setString("1" + TelNo);
} catch (SecurityException eds) {
eds.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
});





public void startApp() {
dsply.setCurrent(frmMain);

}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}
}

spiderman200700
چهارشنبه 01 خرداد 1392, 15:32 عصر
البته خیلی اضولی نوشته نشده، ولی ظاهرا باید کار کنه.
الآن مشکلش چیه؟

برای تستشم بهترین راه نصب کردن روی گوشی و اجرا کردنشه.

spiderman200700
چهارشنبه 01 خرداد 1392, 19:06 عصر
اگه میخوای توی emulator تستش کنی ، کافیه برتامه رو 2 بار اجرا کنی که باعث میشه دو تا پجره emulatorباز بشه.
حالا از یکی از emulatorها به اون یکی بفرست. شماره هر emulator ،بالای پنجره توی Title Barش نوشته شده. مثلا این: +5550000 ، که شما باید + رو حذف کنی و فقط 5550000 رو بنویسی.

اجراش کن ببین مشکلی چیزی داره یا نه. اگه داشت بگو

bobrus
شنبه 18 خرداد 1392, 16:35 عصر
سلام دوباره ببخشید چند وقتی نبودم
الان مشکل دقیقا اونجاست که بعد از ارسال اس ام اس هیچ پیغامی دریافت نمیشه

spiderman200700
شنبه 18 خرداد 1392, 19:02 عصر
هیچ پیغامی دریافت نمیشه یعنی چی؟
مظورت اینه که ارسال نمیکنه؟ یعنی تو گوشی مقصد پیامی دریافت نمیشه؟

bobrus
یک شنبه 19 خرداد 1392, 11:35 صبح
ظاهر امر اینکه پیامک فرستاده میشه ولی در گوشی مقصد هیچ پیامی دریافت نمیشه حالا نمی دونم ممکن هم هست که اصلا ارسال نشده باشه نمی دونم چطور باید تست کنم تا مطمئن شم ارسال شده

spiderman200700
یک شنبه 19 خرداد 1392, 19:48 عصر
شارژ پولی گوشی رو چک کن. ببین شارژ کم میشه یا نه.
کد نهاییتم اینجا قرار بده تا یه نگاهی بهش بندازم.

abc2014
سه شنبه 25 تیر 1392, 15:42 عصر
سلام راهنمایی فوری من j2meرا خوانده ام قصد دارم نرم افزار ارسال و دریافت پیام بنویسم اما اموزش خوبی در زمینه پیام رسانی در این زبان نداشتم و کد اماده اش را هم دیده ام اما میخواستم خودم بنویسم میشه کسی اموزشی در زمینه نوشتن این برنامه بگذارد. همه جا فقط سوال میپرسند اما اموزش ان معمولا نیست خیلی به ان احتیاج دارم.کلاسها و متدهای انرا خوب نمیدانم ممنون