Block incoming SMS in CDMA Emergency Callback Mode
Block incoming SMS in CDMA Emergency Callback Mode CDMA carriers expect that incoming SMS is not processed by phone while it is in Emergency Callback Mode, so don't acknowlegde it to the network.
This commit is contained in:
@@ -25,12 +25,14 @@ import android.database.Cursor;
|
||||
import android.database.SQLException;
|
||||
import android.os.AsyncResult;
|
||||
import android.os.Message;
|
||||
import android.os.SystemProperties;
|
||||
import android.provider.Telephony;
|
||||
import android.provider.Telephony.Sms.Intents;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.util.Config;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.internal.telephony.TelephonyProperties;
|
||||
import com.android.internal.telephony.CommandsInterface;
|
||||
import com.android.internal.telephony.SmsHeader;
|
||||
import com.android.internal.telephony.SmsMessageBase;
|
||||
@@ -75,6 +77,11 @@ final class CdmaSMSDispatcher extends SMSDispatcher {
|
||||
return Intents.RESULT_SMS_GENERIC_ERROR;
|
||||
}
|
||||
|
||||
String inEcm=SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE, "false");
|
||||
if (inEcm.equals("true")) {
|
||||
return Intents.RESULT_SMS_GENERIC_ERROR;
|
||||
}
|
||||
|
||||
// Decode BD stream and set sms variables.
|
||||
SmsMessage sms = (SmsMessage) smsb;
|
||||
sms.parseSms();
|
||||
@@ -343,6 +350,12 @@ final class CdmaSMSDispatcher extends SMSDispatcher {
|
||||
/** {@inheritDoc} */
|
||||
protected void acknowledgeLastIncomingSms(boolean success, int result, Message response){
|
||||
// FIXME unit test leaves cm == null. this should change
|
||||
|
||||
String inEcm=SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE, "false");
|
||||
if (inEcm.equals("true")) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mCm != null) {
|
||||
mCm.acknowledgeLastIncomingCdmaSms(success, resultToCause(result), response);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user