¿Iniciar / detener la conexión Wi-Fi / USB del código?

¿Cómo puedo iniciar o detener el anclaje integrado en Android 2.2 desde mi aplicación?

Hay una API no vinculante pública en ConnectivityManager . Como se muestra arriba, puede utilizar la reflexión para acceder a ella. He probado esto en una serie de teléfonos Android 2.2, y funciona en todos ellos (mi HTC se convierte en tethering pero NO muestra esto en la barra de estado …, así que verifique desde el otro extremo). A continuación se muestra un código aproximado que emite información de depuración y activa la conexión en usb0.

 ConnectivityManager cman = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); Method[] methods = cman.getClass().getDeclaredMethods(); for (Method method : methods) { if (method.getName().equals("getTetherableIfaces")) { try { String[] ifaces = (String[]) method.invoke(cman); for (String iface : ifaces) { Log.d("TETHER", "Tether available on " + iface); } } catch (Exception e) { e.printStackTrace(); } } if (method.getName().equals("isTetheringSupported")) { try { boolean supported = (Boolean) method.invoke(cman); Log.d("TETHER", "Tether is supported: " + (supported ? "yes" : "no")); } catch (Exception e) { e.printStackTrace(); } } if (method.getName().equals("tether")) { Log.d("TETHER", "Starting tether usb0"); try { int result = (Integer) method.invoke(cman, "usb0"); Log.d("TETHER", "Tether usb0 result: " + result); } catch (Exception e) { e.printStackTrace(); } } } 

Tenga en cuenta que este código requiere los siguientes permisos para trabajar:

 android.permission.ACCESS_NETWORK_STATE android.permission.CHANGE_NETWORK_STATE 

Yo respondí esta pregunta aquí . En resumen, es posible , aquí está el código:

 private void setWifiTetheringEnabled(boolean enable) { WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); Method[] methods = wifiManager.getClass().getDeclaredMethods(); for (Method method : methods) { if (method.getName().equals("setWifiApEnabled")) { try { method.invoke(wifiManager, null, enable); } catch (Exception ex) { } break; } } } 

Tu aplicación debe tener el permiso siguiente:

Android.permission.CHANGE_WIFI_STATE

No hay APIs públicas en el SDK de Android para administrar el anclaje – ¡lo siento!

He utilizado el código de Android Cómo activar hotspot en Android Programmatically ! Y habilito el hotspot portátil para android 4.2. Aquí está el código.

 WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); // TODO Auto-generated method stub WifiConfiguration wifi_configuration = null; wifiManager.setWifiEnabled(false); try { //USE REFLECTION TO GET METHOD "SetWifiAPEnabled" Method method=wifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class); method.invoke(wifiManager, wifi_configuration, true); } catch (NoSuchMethodException e){ // TODO Auto-generated catch block e.printStackTrace(); }catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } 
  • No se pudo instalar Android SDK
  • Android Market: "Este elemento no es compatible con tu dispositivo".
  • Detener la actualización automática del sistema operativo Android
  • Después de actualizar Android Studio Su mostrar un error
  • Emulador de Android: no se pudo obtener el error wglGetExtensionsStringARB
  • Android: Problema al guardar la imagen recortada de la cámara
  • El dispositivo virtual no se puede eliminar
  • Android 2.2 y "Bad address family" en Socket Connect
  • ¿Puedo desarrollar aplicaciones para Android usando Eclipse IDE para Java EE?
  • Problemas al manejar los cambios de orientación
  • ListView setOnItemClickListener y setOnItemSelectedListener para almacenar el índice de elementos seleccionados
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.