Android发送短信错误

时间:2014-09-27 10:52:58

标签: android sms

我尝试使用以下代码将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;在它上面。

1 个答案:

答案 0 :(得分:0)

尝试将您的接收器注册为:

<receiver android:name="com.myexample.receivers.SMSReceiver" >
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
</receiver>