how to detect if PIN code is required to unlock sim?

前端 未结 2 1539
走了就别回头了
走了就别回头了 2020-12-30 17:28

There is a \"SIM card lock\" option in android \"setting/Location & security settings\" page.

It\'s necessary to input a PIN code after booting if the option is

相关标签:
2条回答
  • 2020-12-30 17:43

    You can use the following class: TelephonyManager http://developer.android.com/reference/android/telephony/TelephonyManager.html

    You do not instantiate this class directly; instead, you retrieve a reference to an instance through Context.getSystemService(Context.TELEPHONY_SERVICE)

    TelephonyManager manager = (TelephonyManager) Context.getSystemService(Context.TELEPHONY_SERVICE);
    int state = manager.getSimState();
    if(state == TelephonyManager.SIM_STATE_PIN_REQUIRED || state == TelephonyManager.SIM_STATE_PUK_REQUIRED)
    {
             //PIN/PUK is required
    }
    

    Following the comments, this is the final version:

    TelephonyManager tm = 
    (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
           Class clazz = Class.forName(tm.getClass().getName());
           Method m = clazz.getDeclaredMethod("getITelephony");
           m.setAccessible(true);
           ITelephony it = (ITelephony) m.invoke(tm);
           if(it.isSimPinEnabled())
           {
                    //This should work;
           }
    
    0 讨论(0)
  • 2020-12-30 18:08

    As getSimLockEnabled always returns false for me, i had to find another way to do it.

    See https://stackoverflow.com/a/12748638/314089 for the answer.

    0 讨论(0)
提交回复
热议问题