1

我将向客户(主要是孩子)赠送手机(Android),并想创建一个“锁定”应用程序。我不希望客户为手机的密码而烦恼,但是当您打开设备时,“锁定”应用程序应该刚刚启动。然后我覆盖按钮,他们应该无法拨打电话。

唯一的问题是,如果 SIM 卡被移除或被盗,我需要在 sim 卡上输入密码。那么我的“锁定”应用程序是否有可能通过输入密码来解锁 sim 卡?

我怎样才能做到这一点?

4

1 回答 1

6

这是可能的。我在这段代码中这样做:

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

于 2012-08-29T13:36:22.977 回答