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

昨天下午测试的时候遇到的问题,今早才解决,错误代码如下:String phone = dbHelper.getPhoneByTime(timeString);SmsManager sms = SmsManager.getDefault();Intent sentIntent = new Intent(Const.SENT_SMS_ACTION);PendingIntent sent

大家好,又见面了,我是全栈君。

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121348.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何部署服务器虚拟化,vmware服务器虚拟化方案(vmware虚拟化平台部署)

    如何部署服务器虚拟化,vmware服务器虚拟化方案(vmware虚拟化平台部署)服务器虚拟化平台方案主要的有三种 特点分别如下 1 思杰 CitrixXenSer XenCenter 是 Citrix 的虚拟化图形接口管理工具 可在同一界面 管理多台的 XenServer 服务 以前见过一台服务器安装虚拟服务器 然后可以装 N 个系统 又节约硬件 又 1VMwareESXSe 的安装 VMwareESXSer 需要 2GB 的内存 在开始测试的时候 为 ESXSer

    2025年9月5日
    2
  • installshield使用教程[通俗易懂]

    installshield使用教程[通俗易懂]从VisualStudio2012开始,微软就把自家原来的安装与部署工具彻底废掉了,转而让大家去安装使用第三方的打包工具“InstallShieldLimitedEditionforVis

    2022年7月2日
    58
  • webpack版本不兼容_怎么安装webpack在其他盘

    webpack版本不兼容_怎么安装webpack在其他盘运行webpack时报错:Cannotfindmodule’webpack/bin/config-yargs’Thisisprobablynotaproblemwithnpm.Thereislikelyadditionalloggingoutputabove.可能是版本兼容问题,更正后的版本:”devDependencies”:{“webpack”:”^4.39.2″,”webpack-cli”:”^3.3.12″,”webp

    2022年8月9日
    7
  • 动态规划经典题目_动态规划详解

    动态规划经典题目_动态规划详解一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向下 -> 向下向下 -> 向下 -> 向右向下 -> 向右 -&gt

    2022年8月9日
    9
  • 【云原生 | 05】Docker中容器的创建与启停「建议收藏」

    【云原生 | 05】Docker中容器的创建与启停「建议收藏」首先Docker会检查本地是否存在基础镜像,如果本地还没有该镜像的话,那么Docker就会连接官方维护的DockerHubRegistry,查看DockerHub中是否有该镜像。Docker一旦找到该镜像,就会下载该镜像并将其保存到本地宿主机中。随后,Docker在文件系统内部用这个镜像创建了一个新容器。该容器拥有自己的网络、IP地址,以及一个用来和宿主机进行通信的桥接网络接口。………………

    2025年6月13日
    2
  • SAP License:实例讲解SAP与金税接口

    SAP License:实例讲解SAP与金税接口SAP与金税接口的问题很多人问我。今天我通过实例给大家讲解一下。步骤一:与金税公司取得联系,他们会给一个Word文档,里面描述金税系统的字段描述。步骤二:与金税公司签订合同,取得接口安装程序,现在有EXCEL接口和文本接口两种,建议购买EXcel接口,同时金税公司会提供U盘加密卡。步骤三:在SAP系统中做如下配置:销售和分销-基本功能-输出控制-输出确定-使用条件技术的输出确认-维护开票单据的输出确定-维护输出类型VV31双击行项目设置打印机(图片插入不进来)步骤四:Abap开发程序。

    2022年5月30日
    62

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号