A. Add a global variable.
Private int retryNum = 5;
B. In the onReceive method of SmsReadyBroadcastReceiver, add a trace to print the simId, as shown below:
Int extra = intent. getIntExtra ("simId", 0 );
Log. e ("kpp", "extra =" + extra );
C. handleSetStateResponse Method
If exception occurs, retry. In if (ar. exception! = Null) Add the implementation body in the statement as follows:
If (ar. exception! = Null ){
If (retryNum> 0 ){
Message msg;
RetryNum --;
Log. e ("kpp", "retryNum =" + retryNum );
Log. e ("kpp", "simId =" + simId );
Msg = mHandler. obtainMessage (MESSAGE_SET_STATE, simId, MESSAGE_SET_STATE, null );
If (FeatureOption. MTK_GEMINI_SUPPORT = true)
{
(GeminiPhone) phone). activateCellBroadcastSmsGemini (0, msg, simId );
}
Else
{
Phone. activateCellBroadcastSms (0, msg );
}
Return;
}
Else {
If (DBG)
Log. d (LOG_TAG, "handleSetStateResponse: ar. exception =" + ar. exception );
}
}
.......