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" />
アンドロイドマニフェストに設定しました...
どんな助けでも私にとって素晴らしいでしょう。