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中的改动如下:
alps\mediatek\frameworks-ext\base\telephony\java\android\telephony\gemini\GeminiSmsManager中的
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");  <---屏蔽该语句即可
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值