zoukankan      html  css  js  c++  java
  • 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中的改动如下:
    alpsmediatekframeworks-extase elephonyjavaandroid elephonygeminiGeminiSmsManager中的
    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

  • 相关阅读:
    Linnia学习记录
    漫漫考研路
    ENS的学习记录
    KnockoutJS 3.X API 第四章 数据绑定(4) 控制流with绑定
    KnockoutJS 3.X API 第四章 数据绑定(3) 控制流if绑定和ifnot绑定
    KnockoutJS 3.X API 第四章 数据绑定(2) 控制流foreach绑定
    KnockoutJS 3.X API 第四章 数据绑定(1) 文本及样式绑定
    KnockoutJS 3.X API 第三章 计算监控属性(5) 参考手册
    KnockoutJS 3.X API 第三章 计算监控属性(4)Pure computed observables
    KnockoutJS 3.X API 第三章 计算监控属性(3) KO如何实现依赖追踪
  • 原文地址:https://www.cnblogs.com/rabbit-bunny/p/4255150.html
Copyright © 2011-2022 走看看