Ist es möglich, die Sim zu entsperren und die Software in den PIN-Code setzen zu lassen?

Ich werde Handys (Android) an Kunden (hauptsächlich Kinder) verschenken und möchte eine ´Lock´-App erstellen. Ich möchte nicht, dass sich die Kunden mit dem PIN-Code für das Telefon beschäftigen, aber wenn Sie das Gerät einschalten, sollte die "Lock" -App einfach starten. Ich überschreibe dann die Tasten und sie sollten keine Anrufe tätigen können.

Das Einzige ist, dass ich beim Entfernen der SIM-Karte oder bei Diebstahl einen PIN-Code auf der SIM-Karte haben möchte. Ist es also möglich, dass meine ´Lock´-App die SIM-Karte entsperrt, indem sie den PIN-Code eingibt?

Wie kann ich das machen?

Antworten auf die Frage(1)

Das lässt sich machen. Ich mache es in diesem Code:

<code>    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) {
        // 
    }
</code>

Dazu benötigen Sie dieITelefonie Schnittstelle. Sie können seine Quelle findenHier. Machencom.android.internal.telephony Paket in Ihrem src-Ordner und setzen Sie dort iTelephony.java. Dieser Ansatz verwendet die Berechtigung * android.permission.MODIFY_PHONE_STATE *, die nur bis Android 2.2 verfügbar ist. Seit Version 2.3 ist diese Berechtigung auf System-Apps beschränkt. Wenn Sie diesen Code in der neuesten Version verwenden möchten, müssen Sie die apk-Datei Ihrer Anwendung aus dem Ordner / data / app in den Ordner / system / app verschieben.

Ihre Antwort auf die Frage