我的意思是唯一的区别是端口参数。 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吗?