当前位置: 首页 > 编程笔记 >

Android 短信转换成彩信的消息数量(实例代码)

邓德惠
2023-03-14
本文向大家介绍Android 短信转换成彩信的消息数量(实例代码),包括了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 短信转换成彩信的消息数量,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 本文向大家介绍Android实现短信验证功能的代码,包括了Android实现短信验证功能的代码的使用技巧和注意事项,需要的朋友参考一下 在我们现在开发APP过程中,当用户注册时,短信验证是必不可少的操作,这里我们就是用一个免费的第三方短信验证SDK-MOP 首先看下效果图 获取AppKey和AppSecret 首先进入官网,登录(没有帐号的自己去注册一个)。鼠标移动到右侧头像处,点击进入后台。 官

  • 我已经想好了如何发送和接收短信。要发送SMS消息,我必须调用类的和方法。要接收SMS消息,我必须在文件中注册一个接收方。然后我必须重写的方法。我在下面列出了一些例子。 mainactivity.java AndroidManifest.xml 然而,我想知道你是否可以发送和接收彩信以类似的方式。在做了一些研究之后,博客上提供的许多示例只是将传递给本机消息传递应用程序。我正在尝试发送一个彩信而不离开

  • 本文向大家介绍Android中实现基本的短信拦截功能的代码示例,包括了Android中实现基本的短信拦截功能的代码示例的使用技巧和注意事项,需要的朋友参考一下 要点 1.在Manifest.xml里加"接收"SMS的权限 2.在Manifest.xml里注册一个receive 3.定义一个短信接收类,并且重写onReceive 实例 下面是完整的代码: Manifest.xml: AutoSMS.

  • 本文向大家介绍Android用 Mob 实现发送短信验证码实例,包括了Android用 Mob 实现发送短信验证码实例的使用技巧和注意事项,需要的朋友参考一下 和室友参加的互联网大赛要做一个 APP,涉及到用户的登录注册,于是上网找了许多资料,其中有阿里大于,网易云等等,阿里大于的客服给我说他们不支持 Android,网易云还要拍手持身份证的照片,而且这两个都收费,还麻烦,于是找了一个既简单有免费

  • 本文向大家介绍Android实现发送短信功能实例详解,包括了Android实现发送短信功能实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了Android实现发送短信功能的方法。分享给大家供大家参考,具体如下: 短信和打电话一样,都是android手机的基本功能,下面以实例说明android如何实现发送短信的功能。 程序如下所示: AndroidManifest.xml如下: 收到P

  • 本文向大家介绍python调用短信猫控件实现发短信功能实例,包括了python调用短信猫控件实现发短信功能实例的使用技巧和注意事项,需要的朋友参考一下 python调用短信猫控件实现发短信功能实例代码如下所示: