PUK insertion panel not shown

8 views
Skip to first unread message

paldan

unread,
Sep 21, 2016, 9:57:09 AM9/21/16
to android-platform
Hello,

I'm facing an issue in AOSP 6 when after the modem transition from pin pending status to puk pending.

Once the pin insertion panel is shown (KeyGuardSimPinView), after all the pin insertion retries have been consumed, the panel does not change into the puk one (KeyguardSimPukView).

The information coming from the native RIL library should be correct

D/RILJ    ( 2347): [3692]< GET_SIM_STATUS IccCardState {CARDSTATE_PRESENT,PINSTATE_ENABLED_BLOCKED,num_apps=1,gsm_id=0{APPTYPE_USIM,APPSTATE_PUK,pin1=PINSTATE_ENABLED_BLOCKED,pin2=PINSTATE_UNKNOWN},cdma_id=-1,ims_id=-1} [SUB0]


but the panel does not show.

Taking a look at the KeyguardUpdateMonitor (the piece of code that manages the transition) it seems that it is waiting for TelephonyIntents.ACTION_SIM_STATE_CHANGED in order to trigger the transition.

But digging into the Java RIL layer I saw in file IccCardProxy.java this piece of code:

// For locked states, we should be sending internal broadcast.
if (IccCardConstants.INTENT_VALUE_ICC_LOCKED.equals(getIccStateIntentString(mExternalState))) {
    broadcastInternalIccStateChangedIntent(getIccStateIntentString(mExternalState),
        getIccStateReason(mExternalState));
} else {
    broadcastIccStateChangedIntent(getIccStateIntentString(mExternalState),
        getIccStateReason(mExternalState));
}


that for locked states fires an internal intent ACTION_INTERNAL_SIM_STATE_CHANGED that cannot be caught by the KeyguardUpdateMonitor.

If I change the code to fire the TelephonyIntents.ACTION_SIM_STATE_CHANGED things work properly.

Is this a bug in AOSP or am I missing something?

Thanks in advance,
Daniele
Reply all
Reply to author
Forward
0 new messages