我有一個要求,我需要開發一個Android應用程序的Nexus S的把所有我周圍可用的網絡運營商。如何使用getAvailableNetworks從機器人/內部/電話/ Phone.java
我已經與大量的博客跟進完成這件事。
首先,它是一個內部/隱藏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總是...
我甚至在Android清單設置<uses-permission android:name="android.permission.READ_PHONE_STATE" />
...
任何幫助會爲我是巨大的。
由於這不是SDK的一部分,是什麼讓你認爲它應該以這種方式工作?是什麼讓你認爲它可以在Android的所有版本上發揮作用:過去,現在和將來? – CommonsWare 2012-03-08 13:31:06
我想讓它只在Nexus上工作... – EnthuDeveloper 2012-03-09 06:30:41