android Sim卡鎖定 pin解鎖流程學習

本文详细介绍了Android系统中SIM卡PIN锁定后的解锁流程,从SimUnlockScreen.java开始,讲解了如何通过CheckSimPin线程调用TelephonyManager的supplyPin()接口,以及在PhoneInterfaceManager和IccCard中的实现细节,涉及线程、Handler和回调机制。
摘要由CSDN通过智能技术生成
 

1.Android自帶的pin解鎖部份在framework/base/policy/src/com/android/internal/policy/impl/SimUnlockScreen.java

Sim鎖定后開機,會調用這個類,show出“請輸入pin”的解鎖介面,輸入pin密碼后,點擊“ok”,調用checkPin( )

通过启动一个线程CheckSimPin来调用TelephonyManagersupplyPin()接口,并注册一个类似于Callback的虚函数onSimLockChangedResponse()并实现之,这样当supplyPin()调用返回时,触发该Callback函数。

    privatevoidcheckPin() {

         //…….//

        new CheckSimPin(mPinText.getText().toString()) {

            void onSimLockChangedResponse(boolean success) {

                if (mSimUnlockProgressDialog != null) {

                    mSimUnlockProgressDialog.hide();

                }

                if (success) {

                    mUpdateMonitor.reportSimPinUnlocked();

                    mCallback.goToUnlockScreen();

                } else {

                    mHeaderText.setText(R.string.keyguard_password_wrong_pin_code);

                    mPinText.setText("");

                    mEnteredDigits = 0;

                }

                mCallback.pokeWakelock();

            }

        }.start();

    }

 

    privateabstractclassCheckSimPinextends Thread {

        privatefinal String mPin;

        protected CheckSimPin(String pin) {

            mPin = pin;

        }

        abstractvoid onSimLockChangedResponse(boolean success);

        @Override

        publicvoid run() {

            try {

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值