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 parameter
Intent 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(转载请说明出处)

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

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

上一篇:Android屏幕分辨率获取方法--源码剖析


下一篇:用StringBuilder(StringBuffer)#append替代字符串”+”会带来性能提升吗