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
}
}
}
}
من توی برنامم می خوام اس ام اسی که از یک شماره ی خاص هست رو توی نشون بدم. وقتی اس ام اس میاد نمایش نمی ده.
من این کلاس رو برای ارسال و دریافت اس ام اس نوشتم.
ظاهرا مشکلی نداره!!.
گوشی من نوکیا 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
}
}
}
}