У меня есть требование, когда мне нужно разработать приложение для Android для Nexus S, чтобы охватить все доступные сетевые операторы.Как использовать getAvailableNetworks от android/internal/telephony/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 = нуль всегда ...
Я даже установить <uses-permission android:name="android.permission.READ_PHONE_STATE" />
в андроида манифеста ...
Любая помощь будет большим для меня.
Поскольку это не является частью SDK, почему вы думаете, что он должен работать таким образом? Что заставляет вас думать, что он будет работать на всех версиях Android: прошлом, настоящем и будущем? – CommonsWare
Я хочу, чтобы он работал только на Nexus ... – EnthuDeveloper