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

  • 相关阅读:
    css盒子模型、垂直外边距合并
    mov指令和 add以及sub 指令的区别
    第一章 基础知识
    字符串文档的去重
    python 之 字符串的常用方法
    python格式化输出之format用法
    python 格式化输出之%号
    c++11可变参数模板的使用1
    深入浅出 c++11 std::async
    std::thread 概述
  • 原文地址:https://www.cnblogs.com/rabbit-bunny/p/4255150.html
Copyright © 2011-2022 走看看