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