1

電話(Android)をクライアント(主に子供)にプレゼントし、「ロック」アプリを作成したいと思います。クライアントが電話のピンコードを気にしないようにしたいのですが、デバイスの電源を入れると、「ロック」アプリが起動するはずです。次に、ボタンを上書きすると、電話をかけることができなくなります。

唯一のことは、SIMを取り外した場合、または盗難の場合は、SIMカードにPINコードが必要です。それで、私の「ロック」アプリがコードでピンを挿入することによってシムのロックを解除することは可能ですか?

どうやってやるの?

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 に答える