0
我想在Android中發送短信到特定號碼和端口,使用下面的代碼:的Android發送短信錯誤
final String SENT = "SMS_SENT";
PendingIntent sent = PendingIntent.getBroadcast(context, 0, new Intent(SENT), 0);
registerReceiver(Globals.smsReceiver, new IntentFilter(code));
SmsManager manager = SmsManager.getDefault();
manager.sendDataMessage(Globals.NUMBER, null, Globals.PORT, message.getBytes(), sent, null);
Globals.smsReceiver是「SMSSentBroadcastReceiver」對象,這是一個子類「廣播接收機」。 Globals.PORT是5000.
但是,當代碼到達SMSSentBroadcastReceiver上的onReceive()時,它會收到一個RESULT_ERROR_GENERIC_FAILURE代碼。根據文檔,我檢查了sentIntent中的「errorCode」,它返回了42.這是什麼意思?發生了什麼以及如何發送短信?
此外,此代碼之前工作。它沒有明顯的原因停止工作,除了我將手機上的SIM卡更改爲不同的號碼。但我檢查了此卡已啓用,並可以通過默認的短信應用發送「正常」短信。
最後,我的清單也有這樣的:
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
這:
<receiver android:name=".support.SMSSentBroadcastReceiver" >
<intent-filter>
<action android:name="SMS_SENT" />
</intent-filter>
</receiver>
我怎樣才能找出「42」錯誤碼是什麼,我能做些什麼呢?
在此先感謝!
編輯:重新啓動設備沒有解決問題。仍然停留在通用故障。
編輯2:我需要發送的消息是一個小的「類似XML」的文本。但是,我只是測試過,我甚至不能發送帶有「你好」的短信。
感謝您的答覆!我應該保留舊的「SMS_SENT」還是用這個替換它。 順便說一句,爲什麼「SMS_RECEIVED」,如果我試圖發送它? – Sagito 2014-09-27 11:16:25
@Sagito我的意思是說,將「SMS_SENT」替換爲「android.provider.Telephony.SMS_SENT」和完整路徑給你「SMSSentBroadcastReceiver」類如「com.myexample.receivers.SMSReceiver」 – 2014-09-29 04:48:38
看看[這裏](http: //www.compiletimeerror.com/2013/10/smsmessage-delivery-in-android-with.html) – 2014-09-29 05:00:00