2012-04-04 81 views
1

我要给客户(主要是孩子)提供手机(Android),并且想要创建'锁定'应用程序。 我不希望客户打扰手机的PIN码,但是当您打开设备时,'锁定'应用程序应该开始。然后我覆盖按钮,他们不应该能够打电话。是否可以解锁SIM卡,并让软件输入密码

唯一的一点是,如果是移除了SIM卡,或者在被盗的情况下,我想在SIM卡上输入密码。那么是否有可能我的'锁'应用程序通过将密码放入密码来解锁SIM卡?

我该怎么做?

回答

5

这是可能的。我做这个代码:

try { 
     @SuppressWarnings("rawtypes") 
     Class clazz = Class.forName(telephonyManager.getClass().getName()); 
     Method m = clazz.getDeclaredMethod("getITelephony"); 
     m.setAccessible(true); 
     ITelephony it = (ITelephony) m.invoke(telephonyManager); 
     if (it.supplyPin("1234")) { 
      // SIM unlocked 
     } else { 
      // not unlocked 
     } 

    } catch (Exception e) { 
     // 
    } 

为了做到这一点,你需要的ITelephony接口。你可以找到它的来源here。在您的src文件夹中制作com.android.internal.telephony包,并将iTelephony.java放在那里。此方法使用* android.permission.MODIFY_PHONE_STATE *权限,该权限仅适用于Android 2.2。从版本2.3开始,此权限仅限于系统应用程序。如果您想在最新版本中使用该代码,则必须将应用程序apk文件从/ data/app移动到/ system/app文件夹。

相关问题