当前位置: 首页 > 工具软件 > IPMsg4Android > 使用案例 >

android N0 短信转换成彩信的消息数量

云开诚
2023-12-01

默认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;
    }
 类似资料: