Как включить 3G или DataConnection?

На самом деле я хочу включить подключение для передачи данных, когда я ввожу неправильный пароль на телефоне Android. Я использовал ConnectivityManager, но он не работает нормально. Вот исходный код, который я использовал.

  ConnectivityManager dataManager;  dataManager = (ConnectivityManager) ctxt.getSystemService (CONNECTIVITY_SERVICE);  Метод dataMtd = null;  dataMtd = ConnectivityManager.class.getDeclaredMethod ("setMobileDataEnabled", boolean.class); dataMtd.setAccessible (true); dataMtd.invoke (dataManager, true);  


Как включить 3G кнопкой — android

Я ищу looooooot, но не нашел того, что хочу.

Я пытаюсь создать приложение, которое пользователь может включать и выключать, нажимая кнопку для каждого из них.

Я нашел несколько кодов, использующих отражение (я буду использовать Android 2.3 и выше ), но я не знаю, как адаптировать его для использования с кнопками.

Я ищу, как работает отражение, я трачу много времени на поиск других способов сделать это, но … любой работает для меня.

Наихудшая проблема — это коды и примеры, которые я нашел, не использовали исключения (бросает или пытается поймать), поэтому я не знаю, как с ними работать.

Это код, который я нашел здесь, но я не знаю, как его использовать (или назвать его истинным или ложным, чтобы включить и отключить данные 3G/Mobile) в Нажатие кнопки.

Кто-нибудь может мне помочь?

  private void setMobileDataEnabled (контекст контекста, логическое значение включено) {final ConnectivityManager conman = (ConnectivityManager) context.getSystemService (Context.CONNECTIVITY_SERVICE);  последний класс conmanClass = Class.forName (conman.getClass (). getName ());  последнее поле iConnectivityManagerField = conmanClass.getDeclaredField ("mService");  iConnectivityManagerField.setAccessible (true);  конечный объект iConnectivityManager = iConnectivityManagerField.get (conman);  последний класс iConnectivityManagerClass = Class.forName (iConnectivityManager.getClass (). getName ());  финальный метод setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod ("setMobileDataEnabled", Boolean.TYPE);  setMobileDataEnabledMethod.setAccessible (true);  setMobileDataEnabledMethod.invoke (iConnectivityManager, включен);  }  

Ссылка на то, где я нашел этот код: Как программно отключить 3G/данные на Android?


привет! вам просто нужно вызвать функцию внутри onClickListener каждой кнопки и позволить ей работать в отдельном потоке!

On Button:

  btOn.setOnClickListener (new View.OnClickListener () {@Override public void onClick (View view) {Toast.makeText (MainActivity.this, «Попытка включить 3G!»,  Toast.LENGTH_SHORT) .show (); (новый поток (новый Runnable () {@Override public void run () {setMobileDataEnabled (MainActivity.this, true); runOnUiThread (new Runnable () {@Override public void run () {  Toast.makeText (MainActivity.this, «Включено 3G!», Toast.LENGTH_SHORT) .show ();}});}})). Начните();  }});  

Кнопка выключения:

  btOff.setOnClickListener (новый View.  OnClickListener () {@Override public void onClick (View view) {Toast.makeText (MainActivity.this, «Попытка выключить 3G!», Toast.LENGTH_SHORT) .show (); (new Thread (new Runnable () {@  Переопределить public void run () {setMobileDataEnabled (MainActivity.this, false); runOnUiThread (new Runnable () {@Override public void run () {Toast.makeText (MainActivity.this, «Выключено 3G!», Toast.LENGTH_SHORT)  .show ();}});}})). start ();}});  

* Добавить предложения try … catch к функция:

final ConnectivityManager conman;

conman = (ConnectivityManager) context.getSystemService (Context.CONNECTIVITY_SERVICE);

  final Класс conmanClass;  попробуйте {conmanClass = Class.forName (conman.getClass (). getName ());  последнее поле iConnectivityManagerField = conmanClass.getDeclaredField ("mService");  iConnectivityManagerField.setAccessible (true);  конечный объект iConnectivityManager = iConnectivityManagerField.get (conman);  последний класс iConnectivityManagerClass = Class.forName (iConnectivityManager.getClass (). getName ());  финальный метод setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod ("setMobileDataEnabled", Boolean.TYPE);  setMobileDataEnabledMethod.setAccessible (true);  setMobileDataEnabledMethod.invoke (iConnectivityManager, включен);  } catch (ClassNotFoundException e) {e.printStackTrace ();  } catch (InvocationTargetException e) {e.printStackTrace ();  } catch (NoSuchMethodException e) {e.printStackTrace ();  } catch (IllegalAccessException e) {e.printStackTrace ();  } catch (NoSuchFieldException e) {e.printStackTrace ();  }}  

Надеюсь, это ответ на ваш вопрос!

Оцените статью
clickpad.ru
Добавить комментарий