2011-03-14 77 views
1

我想從一個數字向量發送消息,在模擬器中一切正常,但是當我在真實設備上嘗試它時(9630),沒有任何反應(也沒有發生任何異常)。我嘗試過使用和不使用端口號,並且沒有想法,任何幫助都將不勝感激,謝謝。這裏是我的代碼:不能在真實設備上發送短信

for(int i=0; i<_cntctsNmbrs.size(); i++) { 
_conn = (MessageConnection)Connector.open("sms://"+_cntctsNmbrs.elementAt(i)+":0"); 
final TextMessage msgOut = (TextMessage)_conn.newMessage(MessageConnection.TEXT_MESSAGE); 
msgOut.setPayloadText(frmtdMsg); 
_conn.send(msgOut); 
_conn.close(); 

}

+0

您的應用程序是否已簽名?我不確定,但我認爲短信應用程序需要簽名。並且真實設備上的版本是否已簽名? SIM卡不關心簽名。 – taylonr 2011-03-14 00:28:34

+0

是啊,它的所有簽名 – Michoel 2011-03-14 00:29:54

+1

嘗試發送不同線程中的每個SMS並使用線程池管理這些線程。 – Vivart 2011-03-14 05:47:20

回答

1

時採取了使用了DatagramConnection,現在的工作很好,謝謝送。

DatagramConnection dgConn; 
dgConn = (DatagramConnection)Connector.open("sms://" + _cntctsNmbrs.elementAt(i)); 
byte[] data = "MessageBody".getBytes(); 
Datagram dg = dgConn.newDatagram(dgConn.getMaximumLength()); 
dg.setData(data, 0, data.length); 
dgConn.send(dg); 
+0

你在CDMA設備或GSM設備上測試此代碼? – Vivart 2011-03-14 10:11:52

+0

對不起,如果你仍然好奇它是CDMA – Michoel 2011-06-05 18:36:34

0
MessageConnection message_connection = null; 

    try { 
    message_connection = (MessageConnection) Connector.open("sms://"); 
    TextMessage text_message = (TextMessage) message_connection 
    .newMessage(MessageConnection.TEXT_MESSAGE); 
    text_message.setAddress("sms://" + SMS_PHONE_NUMBER); 
    text_message.setPayloadText(smsContent); 
    message_connection.send(text_message); 
    } catch (IOException e) { 
    } 

上述代碼在GSM設備工作正常。