2012-04-04 44 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文件夾。