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


猜你喜欢
- 一、利用距离感应器监听听筒靠近耳朵事件准确的说距离感应器并不能监听到你是否把手机靠近耳朵,也许是你用手挡在了距离感应器前面,但这不是我们关心
- 目前有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz。1.Java Timer定时首先继承j
- Semaphore、SemaphoreSlim 类两者都可以限制同时访问某一资源或资源池的线程数。这里先不扯理论,我们从案例入手,通过示例代
- 初学Android编程,Android SDK中提供的Sample代码自然是最好的学习材料。 
- 以前看到过个:Java开发手册(阿里巴巴-公开版),这是个pdf文档,里面描述了一些Java开发的规约,里面确实有很多好用的规约,要是在学校
- 一、前言在Java编码中,我们经常会遇到List与数组的转换,包括对象List与对象数组的转换,以及对象List与基本数据类型数组的转换,下
- 本文实例讲述了WinFrom中label背景透明的实现方法,在应用程序开发中有着不错的实用价值。分享给大家供大家参考。具体实现方法如下:使用
- Java中的比较问题是一个很基础又很容易混淆的问题。今天就几个容易出错的点作一个比较详细的归纳与整理,希望对大家的学习与面试有帮助。一、==
- 最近在项目开发中,使用spring boot+mybatis的架构,数据库设计主键id时定义为bigint类型,使用mybatis的自动生成
- 这个功能,大家也都可以去百度以下,千篇一律都自己写的(抄的)封装好的公共类,此处还是得膜拜下原创的大佬,可以花时间去搞这个,我看着都头皮发麻
- 在C#中常用到的运算符有条件运算符,is运算符,as运算符,typeof 运算符等等,接下来在文章中将为大家具体介绍各个运算符的使用方法条件
- webview是一个很简单的功能,代码没有什么逻辑上的难度,只是需要注意权限上的问题。其实在安卓编程的过程当中,权限问题可以算是出现的比较多
- java 读取网页内容的实例详解import java.io.BufferedReader; import java.io.IOExcept
- 在拿到一个 Stream 如何优雅将这个 Stream 保存到代码最优雅的方法应该是通过 CopyTo 或 CopyToAsync 的方法u
- 首先对图片进行UUID 防止图片被覆盖以及爬图UUID的生成规则:日期时间,MAC地址,HashCode,随机数(多种之一)开发上传接口,两
- 1.前言开发过程中,讲一个对象的属性和值赋值到另一个对象上,大量使用了get、set方法,看着很臃肿,思考下肯定不只有我有这种想法,所以技术
- LinkedListLinkedList是一种可以在任何位置进行高效地插入和删除操作的有序序列。它的最基本存储结构是一个节点:每个节点将存储
- 本文实例讲述了Java基于二叉查找树实现排序功能。分享给大家供大家参考,具体如下:/** * 无论排序的对象是什么,都要实现Comparab
- 第三章 字符串,比较器和过滤器JDK引入的一些方法对写出函数式风格的代码很有帮助。JDK库里的一些的类和接口我们已经用得非常熟悉了,比如说S
- 本文实例讲述了Android精灵动画用法。分享给大家供大家参考。具体如下:ElaineAnimated.java文件如下:package n