Android 短信转换成彩信的消息数量(实例代码)
作者:chenhao132654 发布时间:2021-11-13 13:01:58
标签:android,短信,彩信,消息数量
默认3条以上转为彩信
改为5条
路径vendor/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/MmsConfig.java
private static int sSmsToMmsTextThreshold = 6; // 4
变量定义字面意思就可以理解 以下是代码分析
vendor/mediatek/proprietary/packages/apps/Mms/res/layout/compose_message_activity.xml
布局文件
vendor/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/ui/ComposeMessageActivity.java
private EnhanceEditText mTextEditor; // Text editor to type your message into //消息输入框
private TextView mTextCounter; // Shows the number of characters used in text editor //剩余字数显示
private TextView mSendButtonMms; // Press to send mms //彩信发送按钮,TextView中加入图片
private ImageButton mSendButtonSms; // Press to send sms //短信发送按钮
private void updateCounter(CharSequence text, int start, int before, int count) {
...
int[] params = null;
int encodingType = SmsMessage.ENCODING_UNKNOWN;
encodingType = mOpComposeExt.getSmsEncodingType(encodingType, ComposeMessageActivity.this);
params = SmsMessage.calculateLength(text, false, encodingType);
/* SmsMessage.calculateLength returns an int[4] with:
* int[0] being the number of SMS's required,
* int[1] the number of code units used,
* int[2] is the number of code units remaining until the next message.
* int[3] is the encoding type that should be used for the message.
*/
final int msgCount = params[0]; //已输入短信条数
final int remainingInCurrentMessage = params[2]; //剩余字数
mWorkingMessage.setLengthRequiresMms(
msgCount >= MmsConfig.getSmsToMmsTextThreshold(), true); //转为彩信的短信条数
MmsLog.d(TAG, "updateCounter(): message msgCount = " + msgCount
+ " TextThreshold() = " + MmsConfig.getSmsToMmsTextThreshold()
+ " remainingInCurrentMessage = " + remainingInCurrentMessage);
/// M: Show the counter
/// M: Update the remaining characters and number of messages required.
if (msgCount >= MmsConfig.getSmsToMmsTextThreshold()) {
mTextCounter.setVisibility(View.GONE);
return;
}
mUiHandler.postDelayed(new Runnable() {
@Override
public void run() {
if (mOpComposeExt.updateCounterUiRun(mTextEditor, remainingInCurrentMessage,
msgCount, mWorkingMessage)) {
return;
}
MmsLog.d(TAG, "updateCounter requiresMms = " + mWorkingMessage.requiresMms()
+ " line count = " + mTextEditor.getLineCount());
if (mWorkingMessage.requiresMms() || mTextEditor.getLineCount() <= 1) {
mTextCounter.setVisibility(View.GONE);
return;
}
mTextCounter.setVisibility(View.VISIBLE);
String counterText = remainingInCurrentMessage + "/" + msgCount;
mTextCounter.setText(counterText);
}
}, 100);
//显示短信发送按钮或彩信发送按钮
private View showSmsOrMmsSendButton(boolean isMms) {
View showButton = null;
View hideButton = null;
// add for ipmessage
if (isMms) {
if (mSubCount == 0 || (isRecipientsEditorVisible()
&& TextUtils.isEmpty(mRecipientsEditor.getText()))
/// M: fix bug ALPS00563318, show gray mms_send_button
/// when haven't subject, text and attachment
|| ((mSubjectTextEditor == null || (mSubjectTextEditor != null
&& TextUtils.isEmpty(mSubjectTextEditor.getText().toString().trim())))
&& mTextEditor != null
&& TextUtils.isEmpty(mTextEditor.getText().toString().trim())
&& !mWorkingMessage.hasAttachment())
|| !mIsSmsEnabled) {
mSendButtonMms.setCompoundDrawablesWithIntrinsicBounds(null, null, null,
getResources().getDrawable(R.drawable.ic_send_sms_unsend));
} else {
mSendButtonMms.setCompoundDrawablesWithIntrinsicBounds(null, null, null,
getResources().getDrawable(R.drawable.ic_send_ipmsg));
}
showButton = mSendButtonMms;
hideButton = mSendButtonSms;
} else {
if (!mIpCompose.onIpShowSmsOrMmsSendButton(isMms)) {
if ((mTextEditor.getText().toString().isEmpty())
|| mSubCount == 0
|| (isRecipientsEditorVisible()
&& TextUtils.isEmpty(mRecipientsEditor.getText()))
|| recipientCount() > MmsConfig.getSmsRecipientLimit()
|| !mIsSmsEnabled) {
///@}
mSendButtonSms.setImageResource(R.drawable.ic_send_sms_unsend);
} else {
mSendButtonSms.setImageResource(R.drawable.ic_send_ipmsg);
}
}
showButton = mSendButtonSms;
hideButton = mSendButtonMms;
}
if (showButton != null) {
showButton.setVisibility(View.VISIBLE);
}
if (hideButton != null) {
hideButton.setVisibility(View.GONE);
}
updateTextEditorHint();
return showButton;
}
以上所述是小编给大家介绍的Android 短信转换成彩信的消息数量网站的支持!
来源:http://blog.csdn.net/qq_32143319/article/details/72722079
0
投稿
猜你喜欢
- 本文实例讲述了Android编程实现图片的颜色处理功能。分享给大家供大家参考,具体如下:先看效果图:图片的颜色处理的基本步骤:1.先拿到一张
- 排查@CacheEvict注解失效我简单看了一下《Spring实战》中的demo,然后就应用到业务代码中了,本以为如此简单的事情,竟然在代码
- 背景2021年第一天早上,客户突然投诉说系统的一个功能出了问题,紧急排查后发现后端系统确实出了bug,原因为前端传输的JSON报文,后端反序
- 本文实例为大家分享了unity实现UI元素跟随3D物体的具体代码,供大家参考,具体内容如下在Canvas不同的渲染模式(RenderMode
- mybatis 3 | 参考文档MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几
- 方式一:基于现有控件进行扩展,如基于button进行扩展,UI可直接用xmal进行编辑设计,逻辑用xaml.cs进行编辑方法二:直接创建wp
- 本文讲述了在Java中如何创建和结束线程的最基本方法,只针对于Java初学者。一些高级知识如线程同步、调度、线程池等内容将会在后续章节中逐步
- 在实际项目开发中,对于Excel的导入导出还是很常见的需求,比如说将数据根据模板批量导入到数据库中,以及将数据库中的数据批量导出陈Excel
- 概述背景函数式编程的理论基础是阿隆佐·丘奇(Alonzo Church)于 1930 年代提出的 &lambd
- 问题之前一直使用Mybatis,最近尝试使用Mybatis-Plus,却在updateById登录成功后更新最近登录时间出现了问题,一般业务
- 这篇文章主要介绍了通过实例了解spring使用构造器注入的原因,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 前言作为一个写java的使用最多的轻量级框架莫过于spring,不管是老项目用到的springmvc,还是现在流行的springboot,都
- 一、C#和JS互相调用 1、js调用C# C#代码如下: webView.CoreWebView2.AddHo
- 一、背景在通过Runnable接口创建线程时,启动线程需要借助Thread类,这里就涉及到了静态代理模式。二、实例以歌手演出为例,在演出的这
- 前言经过一段时间的学习Oauth2,在网上也借鉴学习了一些大牛的经验,推荐在学习的过程中多看几遍阮一峰的《理解OAuth 2.0》,经过对O
- 首先去官网下载 一个压缩包 网址: 这里是 1.2.17的版本 下载之后解压就可以了下面就从eclipse中添加
- 目录一对一关联保存:留言表实体类配置:(主表)留言内容表配置:(从表)留言表hbm.xml配置:(主表)留言内容表hbm.xml配置:(从表
- 新建一个txt的文本(代码中读取这个文本文档路径就行,命名随意)里面的内容一行代表一个,因为我是按行来遍历循环读取要屏蔽的关键字.然后用一个
- 我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在后台处理一大堆数据,但还要使用户界面处于可操作状态;或者你的程序需要访问一些
- 我们开发任何一个Spring Boot项目,都会用到如下的启动类@SpringBootApplication public class Ap