Javaリフレクションを使用してSIMカードのPIN番号を変更したいと考えています。最終的なアプリは system/app にインストールされます。
私が使用しているコードは次のとおりです。
String ICCCARD_CLASS = "com.android.internal.telephony.IccCard";
String PHONEBASE_CLASS = "com.android.internal.telephony.PhoneBase";
Object phoneBaseObject = Class.forName(PHONEBASE_CLASS).getConstructor();
Object iccCardObject = Class.forName(ICCCARD_CLASS).newInstance();
Method iccCardMethod = Class.forName(ICCCARD_CLASS).getMethod("changeIccLockPassword", String.class, String.class, Message.class);
//Method arguments are...
Object arglist1[] = new Object[3];
arglist1[0] = "1111"; //oldPass
arglist1[1] = "2222"; //newPass
arglist1[2] = new Message(); //message handler (not needed)
iccCardMethod.invoke(iccCardObject, arglist1);
しかし、「そのようなメソッドはありません」、「インスタンス化例外」などの多くの例外が発生しています... 私の Android プロジェクトでは、IccCard と PhoneBase のパッケージが作成されていません。
TNXハッカー!