android 支持发送空短信
method:
A) AP端修改:
1、将ComposeMessageActivity.java 中的 isPreparedForSending() 作如下修改(删掉的code也可以注释掉)
private boolean isPreparedForSending() {
if(isRecipientsEditorVisible())
{
String recipientText = mRecipientsEditor.getText()==null?””:mRecipientsEditor.getText().toString();
Return mSimCount>0 && !TextUtils.isEmpty(recipientText);
}else{
Return mSimCount>0;
}
}
2、在SmsSingleRecipientSender.java 中加入
import android.text.TextUtils;
并且在函数public boolean sendMessage(long token, int simId)中, " int messageCount = messages.size();"之前加入
if (TextUtils.isEmpty(mMessageText)){
messages.add("");
}
3、SmsMessageSender.java的修改queueMessage()方法
去掉对mMessageText==null的判断。
B) Framework端需合入Patch,Patch中的改动如下:
alps\mediatek\frameworks-ext\base\telephony\java\android\telephony\gemini\GeminiSmsManager中的
isValidParameters(String destinationAddress, String parts, PendingIntent sentIntent)方法,
将此方法中判断parts为空的部分去掉即可。
if (parts==null || parts.size()<1) {
//throw new IllegalArgumentException("Invalid message body"); <---屏蔽该语句即可
}
另外,如果在灭屏情况下,接收到信息,此时信息直接show,希望在DialogModeActivity 这个界面也能支持回复 空短信,除了上面的修改外,还需修改以下code:
将DialogModeActivity.java 这支文件,做如下修改:
1. 修改 private void updateSendButtonState() { 大约2242 行,将if(len>0) 修改为 if(len>=0), 修改后如下:
private void updateSendButtonState() {
boolean enable = false;
int len = mReplyEditor.getText().toString().length();
MmsLog.d(TAG, "DialogModeActivity.updateSendButtonState(): len = " + len);
if (mSendButton != null) {
if (len >= 0) { // modify for send blank sms
MmsLog.d(TAG, "updateSendButtonState(): mSimCount = " + mSimCount);
2. 修改:
onPreMessageSent(){
MmsLog.d(TAG, "DialogModeActivity.onPreMessageSent");
if(mUris!= null && !mUris.isEmpty()){
runOnUiThread(mResetMessageRunnable);
}
3. Runnable mResetMessageRunnable = new Runnable() {
public void run(){
if(mUris!= null && !mUris.isEmpty()){
MmsLog.d(TAG, "mResetMessageRunnable.run");
resetMessage();
}
}
};
注意:对于KK版本的手机,修改方法稍有变动,变动主要有两点:
1.SmsMessageSender.java的修改queueMessage()方法去掉对MessageText==null的判断====>
SmsMessageSender.java的修改queueMessage()方法去掉对(mMessageText == null) || mMessageText.isEmpty() 的判断
2.GeminiSmsManager.java KK中无此文件,改为修改===>
packages/apps/Mms/src/com/mediatek/encapsulation/android/telephony/gemini/EncapsulatedGeminiSmsManager.java
frameworks/opt/telephony/src/java/android/telephony/SmsManager.java
mediatek/frameworks/opt/telephony/src/java/com/mediatek/telephony/SmsManagerEx.java
修改方法同JB:
if (parts==null || parts.size()<1) {
//throw new IllegalArgumentException("Invalid message body"); <---屏蔽该语句即可
}
结伴旅游,一个免费的交友网站:www.jieberu.com
推推族,免费得门票,游景区:www.tuituizu.com
android 支持发送空短信的更多相关文章
- 基于android 社会的app短信分享 发送回调事件的实现
摘要 前一段时间.由于项目的需要,采用ShareSDK该共享功能.其中包含 短信股吧.和呼叫系统,以分享要与成功处理服务器交互的消息后,(我不在乎在这里,收到.仅仅关心发出去了).可是ShareSDk ...
- Android 提示应用“正在发送大量短信”的解决办法
. . . . . 临近过年了,又到了发送各类拜年短信的时刻了.虽然转发各类拜年短信已经显得越来越没年味,但是依然有很对人乐此不疲.为朋友送去祝福自然是好事,可是转发来的短信本身发送者就并没有投入太多 ...
- Android学习笔记之短信验证码的获取和读取
PS:最近很多事情都拖拖拉拉的..都什么办事效率啊!!! 还得吐槽一下移动运营商,验证码超过五次的时候,直接把我的手机号封闭.真是受够了. 学习笔记: 1.Android之如何获取短信验证码. 2.如 ...
- 发送SMS短信(JSON) 转载
http://blog.csdn.net/ldl22847/article/details/42553883 public static string GetMobileConfByUserId( ...
- android打电话、发短信实现
打电话: Intent intent = newIntent(Intent.ACTION_CALL,Uri.parse("tel:"+"156666666666" ...
- PHP 结合前端 ajax 爬取网站信息后, 向指定用户发送指定短信;
<?php /** * Description * @authors Your Name (you@example.org) * # 根据时时彩的最新一期的号码, 判断如果为首尾同号则发送短信 ...
- 用Java通过串口发送手机短信
用Java通过串口发短信其实很简单,因为有现成的类库供我们使用.有底层的类库,也有封装好一点的类库,下面我介绍一下在 Win32 平台下发送短信的方法. 如果你想用更底层的类库开发功能更强大的应用程序 ...
- 利用java实现的一个发送手机短信的小例子
今天闲来无事,在微博上看到一个关于用java实现的一个发送手机短信的程序,看了看,写的不太相信,闲的没事,把他整理下来,以后可能用得着 JAVA发送手机短信,流传有几种方法:(1)使用webservi ...
- 四:java调接口实现发送手机短信验证码功能
1.点击获取验证码之前的样式: 2.输入正确的手机号后点击获取验证码之后的样式: 3.如果手机号已经被注册的样式: 4.如果一个手机号一天发送超过3次就提示不能发送: 二:前台的注册页面的代码:reg ...
随机推荐
- 小记---------spark优化之更优分配资源
spark优化:在一定范围之内,增加资源与性能的提升是成正比的. 因此, 一个cpu core 执行一个task线程. task数: 若有 cpu core 2个.num-execu ...
- 【图论好题】ABC #142 Task F Pure
题目大意 给定一个 $N$ 个点 $M$ 条边的有向图 $G$,无重边.自环.找出图 $G$ 的一个导出子图(induced subgraph) $G'$,且 $G'$ 中的每个点的入度和出度都是 1 ...
- MVVM 和 VUE三要素:响应式、模板引擎、渲染
MVVM 和 VUE三要素:响应式.模板引擎.渲染:https://blog.csdn.net/weixin_37644989/article/details/94409430
- 2-SAT问题介绍求解 + 模板题P4782
(点击此处查看原题) 什么是2-SAT问题 sat 即 Satisfiability,意思为可满足,那么2-SAT表示一些布尔变量只能取true或者false,而某两个变量之间的值存在一定的关系(如: ...
- cut,sort,awk,sed,tr,find,wc,uniq在Linux中的用法
cut语法cut [-bn] [file]cut [-c] [file]cut [-df] [file] -b :以字节为单位进行分割.这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志.-c ...
- redis 学习(10)-- redis 慢查询
redis 慢查询 什么是慢查询 MySQL会记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为慢查询,都记在慢查询日志里. redis 的生命周期 客户端向Redis服务器发送命令 ...
- Nginx启动错误 Failed to read PID from file /run/nginx.pid 的处理方法
问题产生原因 因为 nginx 启动需要一点点时间,而 systemd 在 nginx 完成启动前就去读取 pid file 造成读取 pid 失败 解决方法 让 systemd 在执行 ExecSt ...
- 简单搭建http服务器-HttpListener使用
使用HTTPListener可以简单搭建一个Http服务器,对于本地使用很是方面,想起之前使用了WebSocket来与本地网页通讯的例子,也是可以改为使用HTTPListener来做的.看下HTTPL ...
- powerDisgner 数据类型对比
powerDisgner 16.5版本支持一下类型数据模型格式 以下数字数据类型可用: Standard data type DBMS-specific physical data type Cont ...
- Go语言标准库之fmt.Scan
Go语言fmt.Scan使用指南 本文介绍了Go语言中fmt包中从标准输入获取数据的的Scan系列函数.从io.Reader中获取数据的Fscan系列函数以及从字符串中获取数据的Sscan系列函数的用 ...