我的意思是唯一的区别是端口参数。 CDMA和GSM手机之间有关系吗?我有这个查询,因为当我尝试从CDMA发送不带端口的SMS时,它运行良好,但是使用端口时我的应用程序崩溃了。通过查看日志可以看到我

java.lang.NullPointerException
at android.os.Parcel.readException(Parcel.java:1253)
at android.os.Parcel.readException(Parcel.java:1235)
at com.android.internal.telephony.ISms$Stub$Proxy.sendData(ISms.java:558)
at android.telephony.SmsManager.sendDataMessage(SmsManager.java:524)


这是CDMA问题吗?因为我有sprint htc手机,所以我想将其用作在印度的漫游。

这是我用来从CDMA smsMgr.sendDataMessage(receiverPhoneNumber, null, (short)1001, message.getBytes(), sentPendingIntent, deliveredPendingIntent);发送短信的API

但是通过此API,它对于CDMA和GSM smsMgr.sendTextMessage(receiverPhoneNumber, null, message, sentPendingIntent, deliveredPendingIntent);都可以正常工作

那么,sendDataMessage和sendTextMessage之间的区别是什么?
我已经阅读了这些方法的文档,但对于我的情况来说,它不合适

帮助表示赞赏。

最佳答案

查看文档here,如果您不使用已弃用的SmsManager,而是使用API​​ 4 up(android.telephony.SmsManager)中提供的版本,似乎CDMA和GSM不应成为问题。


  此类已弃用。替换为android.telephony.SmsManager
  同时支持GSM和CDMA。


关于数据消息和文本消息之间的区别,我认为数据消息包括诸如图片文本之类的内容,而sendTextMessage是纯文本。从您提供的错误消息中,听起来像在sendDataMessage调用之前可能已实例化了一些错误的实例(将空值保留在某个地方)-您可以提供该代码和值receiverPhoneNumber, null, (short)1001, message.getBytes(), sentPendingIntent, deliveredPendingIntent的Logcat吗?

08-03 23:59