当前位置: 代码迷 >> Android >> android异常之短信发不出去,短信空指针,smsManager.sendTextMessage报空指针错误
  详细解决方案

android异常之短信发不出去,短信空指针,smsManager.sendTextMessage报空指针错误

热度:99   发布时间:2016-04-28 06:09:38.0
android错误之短信发不出去,短信空指针,smsManager.sendTextMessage报空指针异常

昨天下午测试的时候遇到的问题,今早才解决,错误代码如下:

String phone = dbHelper.getPhoneByTime(timeString);SmsManager sms = SmsManager.getDefault();Intent sentIntent = new Intent(Const.SENT_SMS_ACTION);PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,					sentIntent, 0);// create the deilverIntent parameterIntent deliverIntent = new Intent(Const.DELIVERED_SMS_ACTION);PendingIntent deliverPI = PendingIntent.getBroadcast(this, 0,					deliverIntent, 0);sms.sendTextMessage(phone, null, msg, sentPI,deliverPI);//发送		

总是在发送这行报空指针异常,第一反应就是变量没初始化,检查了好几遍,

手机号是从数据库读取出来的,msg是自动生成的,sentPI和deliverPI都是好的,

确实没有空指针,一遍一遍的找。。

 

今早上才意识到,短信的长度问题。

一条短信的长度是70个字,我数了一下,原来是要发送的内容太长了。

改成下面这样

if (message.length() > 70) {					ArrayList<String> msgs = sms.divideMessage(message);					for (String msg : msgs) {						if (msg != null) {							sms.sendTextMessage(phone, null, msg, sentPI,									deliverPI);						}					}				} else {					sms.sendTextMessage(phone, null, message, sentPI, deliverPI);				}


判断一下短信长度,过长的话分成多条发送就行了。

 

无法理解短信太长为什么会报空指针。

作者:jason0539

微博:http://weibo.com/2553717707

博客:http://blog.csdn.net/jason0539(转载请说明出处)

  相关解决方案