我将向客户(主要是孩子)赠送手机(Android),并想创建一个“锁定”应用程序。我不希望客户为手机的密码而烦恼,但是当您打开设备时,“锁定”应用程序应该刚刚启动。然后我覆盖按钮,他们应该无法拨打电话。
唯一的问题是,如果 SIM 卡被移除或被盗,我需要在 sim 卡上输入密码。那么我的“锁定”应用程序是否有可能通过输入密码来解锁 sim 卡?
我怎样才能做到这一点?
这是可能的。我在这段代码中这样做:
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 文件夹。