2012-04-04 2 views
1

stecken zu lassen Ich werde Telefone (Android) an Clients (meistens Kinder) verschenken und möchte eine'lock'-App erstellen. Ich möchte nicht, dass sich die Clients 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 Telefonanrufe tätigen können.Ist es möglich die SIM freizuschalten und die Software in den Pincode

Einzige Sache ist, im Falle der Entfernung der SIM, oder im Falle von Diebstahl, ich möchte einen PIN-Code auf der Simkarte. Ist es also möglich, dass meine "Lock" -App den Sim freigibt, indem ich den Pin nach Code einfüge?

Wie kann ich das tun?

Antwort

5

Das ist möglich. Ich mache es in diesem 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) { 
     // 
    } 

Um das zu tun, müssen Sie die ITelephony Schnittstelle. Sie finden die Quelle here. Machen Sie com.android.internal.telefonie Paket in Ihrem src-Ordner und setzen Sie iTelephony.java dort. 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 Ihre Anwendungs-APK-Datei von/data/app in den Ordner/system/app verschieben.