¿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 alguna alternativa para ActionBar en 2.2?
- ADB no funciona y no se puede inicializar el error de seguimiento del hilo ocurrido en los ddms en android
- Programar la actividad 'Añadir cuenta' en Android 2.2
- Diseño 4 botones en Android
- Int en intbuffer para Android OpenGL ES 1.0?
- SchemaFactory no admite W3C XML Schema en plataforma de nivel 8?
- Cómo establecer programaticamente drawableLeft en el botón de Android?
- ¿Por qué se censuran algunos contactos de las aplicaciones de Android?
- ¿No se puede utilizar el hilador androide?
- Android SDK & AVD Managers en Eclipse en Fedora 16 - no cerrar el botón de la ventana
- ¿Cómo interactúa Android 2.2 con Flash 10.1 (cómo usar el flash de mi aplicación)?
- La opción CheckJNI no funciona
- ADB Shell que da el modo incorrecto al ejecutar chmod (bajo su)
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(); }
- La página de vista web de Android no carga correctamente la página
- Android: ScrollView y la caché de dibujo?