我有一个要求,我需要为 Nexus S 开发一个 Android 应用程序,以便让所有可用的网络运营商围绕我。
我一直在跟进很多博客来完成这项工作。
首先它是一个内部/隐藏的 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清单中设置了......
任何帮助对我来说都会很棒。