У меня есть требование, при котором мне нужно разработать приложение для Android для Nexus S, чтобы получить доступ ко всем доступным сетевым операторам вокруг меня.
Я следил за множеством блогов, чтобы сделать это.
Во-первых, это внутренний / скрытый API
Итак, я воспользовался этим методом, чтобы вызвать его.
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
telephonyManagerClass = Class.forName(telephonyManager.getClass().getName());
Method getITelephonyMethod = telephonyManagerClass.getDeclaredMethod("getITelephony");
getITelephonyMethod.setAccessible(true);
ITelephonyStub = getITelephonyMethod.invoke(telephonyManager);
ITelephonyClass = Class.forName(ITelephonyStub.getClass().getName());
setPrefNetmethod = ITelephonyClass.getDeclaredMethod(
"getAvailableNetworks", new Class[] { Message.class });
Message response = Message.obtain();
setPrefNetmethod.setAccessible(false);
setPrefNetmethod.invoke(ITelephonyStub, new Object[] { network_mode, response });
Но я всегда получаю setPrefNetmethod = null ...
Я даже установил <uses-permission android:name="android.permission.READ_PHONE_STATE" />
в манифесте Android ...
Любая помощь будет очень полезна для меня.