我尝试使用以下代码将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" object,它是" BroadcastReceiver"的子类。 Globals.PORT是5000。
但是,当代码到达SMSSentBroadcastReceiver上的onReceive()时,它会收到RESULT_ERROR_GENERIC_FAILURE代码。根据文档,我检查了" errorCode"在sentIntent中它返回42.这是什么意思?发生了什么,我该如何发送短信?
此外,此代码之前有效。它没有明显的原因停止工作,除了我将手机上的SIM卡更改为其他号码。但我检查了这张卡是否启用,可以发送"正常"通过默认短信应用程序发送短信。
最后,我的Manifest也有这个:
<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>
我怎样才能弄清楚&#34; 42&#34; errorCode是我可以做些什么呢?
提前致谢!
编辑:重新启动设备无法解决问题。仍然坚持一般失败。
编辑2:我需要发送的消息是一个类似XML的&#34;&#34;文本。但是,我刚刚测试过,我甚至无法发送短信&#34; Hello&#34;在它上面。
答案 0 :(得分:0)
尝试将您的接收器注册为:
<receiver android:name="com.myexample.receivers.SMSReceiver" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>