Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android錯誤之短信發不出去,短信空指針,smsManager.sendTextMessage報空指針異常

android錯誤之短信發不出去,短信空指針,smsManager.sendTextMessage報空指針異常

編輯:關於Android編程

昨天下午測試的時候遇到的問題,今早才解決,錯誤代碼如下:

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 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(轉載請說明出處)

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved