PDA

View Full Version : دریافت نکردن اس ام اس در برنامه



amirsajjadi
جمعه 23 مهر 1389, 11:55 صبح
با سلام
من توی برنامم می خوام اس ام اسی که از یک شماره ی خاص هست رو توی نشون بدم. وقتی اس ام اس میاد نمایش نمی ده.
من این کلاس رو برای ارسال و دریافت اس ام اس نوشتم.
ظاهرا مشکلی نداره!!.
گوشی من نوکیا n82 هست.
مشکلی توی کد هست؟
من همین برنامه رو با استفاده از WMA Consol تست کردم و درست هم جواب می ده ولی وقتی روی موبایل نصب می کنم جواب نمی ده؟؟!!
ممنون


import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.wireless.messaging.*;

public class SMS implements Runnable, MessageListener
{

private Display dp;
private Thread thread;
private String[] connections;
private MessageConnection smsconn;
private Message msg;

public SMS(Display d)
{
dp=d;
if (smsconn == null) {
try
{
smsconn=(MessageConnection)Connector.open("sms://:50000");
smsconn.setMessageListener(this);
}
catch (Exception err)
{
//Error
}
}
connections = PushRegistry.listConnections(true);
if ((connections == null) || (connections.length == 0)) {
//WAITING ...
}
thread=new Thread(this);
thread.start();
}

public void notifyIncomingMessage(MessageConnection conn)
{
if (thread==null)
{
thread=new Thread(this);
thread.start();
}
}

public void run()
{
try
{
while(true)
{
msg = smsconn.receive();
if (msg != null)
{
String senderAddress = msg.getAddress();
if (msg instanceof TextMessage)
{
String st=((TextMessage)msg).getPayloadText();
if(st!=null)
{
Alert alert=new Alert(senderAddress);
alert.setString(st);
alert.setTimeout(Alert.FOREVER);
dp.setCurrent(alert);
}
}
else
{
StringBuffer buf = new StringBuffer();
byte[] data = ((BinaryMessage)msg).getPayloadData();

for (int i = 0; i < data.length; i++)
{
int intData = (int)data[i] & 0xFF;
if (intData < 0x10) {buf.append("0");}
buf.append(Integer.toHexString(intData));
buf.append(' ');
}
if(data!=null)
{
Alert alert=new Alert(senderAddress);
alert.setString(data.toString());
alert.setTimeout(Alert.FOREVER);
dp.setCurrent(alert);
}
}
}
}
}
catch (Exception err)
{
// e.printStackTrace();
}
}

private boolean sendsms(String number,String msg)
{
try
{
MessageConnection conn=(MessageConnection) Connector.open("sms://"+number+":1234");
TextMessage txtMsg=(TextMessage) conn.newMessage(MessageConnection.TEXT_MESSAGE);
txtMsg.setPayloadText(msg);
conn.send(txtMsg);
conn.close();
return true;
}
catch(Exception err)
{
return false;
}
}

public boolean SendSMS(String numberCode)
{
return sendsms("3000330003",numberCode);
}

public void Close()
{
thread = null;
if (smsconn != null)
{
try
{
smsconn.close();
}
catch (Exception err)
{
// Ignore any errors on shutdown
}
}
}
}

pedram123
شنبه 24 مهر 1389, 19:25 عصر
پرت 50000 وجود نداره از پورت 5000 استفاده کن

amirsajjadi
دوشنبه 26 مهر 1389, 21:00 عصر
از پورت 5000 هم استفاده کردم ولی نشد که نشد!!!.

amirsajjadi
پنج شنبه 29 مهر 1389, 09:54 صبح
کسی نیست جواب بده ؟؟؟؟

hesamy2004
پنج شنبه 29 مهر 1389, 17:07 عصر
خب باید بجای اون شماره 5000 شماره موبایلت رو بنویسی بعد کامپایل کنی.
قسمتی از کد برنامه ای که من نوشتم اینطوریه، مشکلی هم نداره:


try
{
//sets address to send message
String addr = "sms://" + number;
// opens connection
MessageConnection conn = (MessageConnection) Connector.open(addr);
// prepares text message
TextMessage msg =
(TextMessage)conn.newMessage(MessageConnection.TEX T_MESSAGE);
//set text
msg.setPayloadText(message);
// send message
conn.send(msg);
conn.close();
}
catch(SecurityException se)
{
result = false;
}
catch (Exception e)
{
result = false;
}

amirsajjadi
جمعه 30 مهر 1389, 09:48 صبح
خب باید بجای اون شماره 5000 شماره موبایلت رو بنویسی بعد کامپایل کنی.
قسمتی از کد برنامه ای که من نوشتم اینطوریه، مشکلی هم نداره:


try
{
//sets address to send message
String addr = "sms://" + number;
// opens connection
MessageConnection conn = (MessageConnection) Connector.open(addr);
// prepares text message
TextMessage msg =
(TextMessage)conn.newMessage(MessageConnection.TEX T_MESSAGE);
//set text
msg.setPayloadText(message);
// send message
conn.send(msg);
conn.close();
}
catch(SecurityException se)
{
result = false;
}
catch (Exception e)
{
result = false;
}
ممنون از پاسختون ولی من توی دریافت اس ام اس مشکل دارم نه توی ارسال.

golinazhad_h
پنج شنبه 11 آذر 1389, 22:08 عصر
از پورت 5000 هم استفاده کردم ولی نشد که نشد!!!.
پورت 8080 و 8888 را هم تست کن احتمال زیاد جواب میده

زکیه ابراهیمی
شنبه 23 بهمن 1389, 21:15 عصر
سلام شماره پورت را به دست آوردی
خواهش میکنم جواب بده برا پوژم نیاز دارم

dr_jacky_2005
یک شنبه 24 بهمن 1389, 10:07 صبح
سلام شماره پورت را به دست آوردی
خواهش میکنم جواب بده برا پوژم نیاز دارم
بین 16000 تا 17000

;)

trustmiracle
یک شنبه 24 بهمن 1389, 13:28 عصر
کدتون را اینطوری بنویسید


tring addr = "sms://:" + Port;


ضمن اینکه هنگام ارسال اس ام اس باید مشخص کنید که پیام برای چه پورتی فرستاده بشه.

Sanaaaaa
شنبه 04 شهریور 1391, 13:44 عصر
سلام
من برنامه ارسال و دریافت اس ام اس رو می خوام که فقط توی نت بینز اجرا بشه کافیه
خواهش می کنم اگه کسی داره بذاره