Android activar / desactivar WiFi HotSpot mediante programación

¿Hay una API para activar / desactivar la HotSpot WiFi en Android mediante programación?

¿Qué métodos debo llamar para activarlo / desactivarlo?

ACTUALIZACIÓN: Existe esta opción para activar el HotSpot y activar / desactivar el WiFi, pero esta no es una buena solución para mí.

Utilice la clase a continuación para cambiar o revisar la configuración del hotspot Wifi:

import android.content.*; import android.net.wifi.*; import java.lang.reflect.*; public class ApManager { //check whether wifi hotspot on or off public static boolean isApOn(Context context) { WifiManager wifimanager = (WifiManager) context.getSystemService(context.WIFI_SERVICE); try { Method method = wifimanager.getClass().getDeclaredMethod("isWifiApEnabled"); method.setAccessible(true); return (Boolean) method.invoke(wifimanager); } catch (Throwable ignored) {} return false; } // toggle wifi hotspot on or off public static boolean configApState(Context context) { WifiManager wifimanager = (WifiManager) context.getSystemService(context.WIFI_SERVICE); WifiConfiguration wificonfiguration = null; try { // if WiFi is on, turn it off if(isApOn(context)) { wifimanager.setWifiEnabled(false); } Method method = wifimanager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class); method.invoke(wifimanager, wificonfiguration, !isApOn(context)); return true; } catch (Exception e) { e.printStackTrace(); } return false; } } // end of class 

Debes agregar los permisos a continuación a tu AndroidMainfest:

 <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 

Utilice esta clase ApManager independiente de cualquier lugar de la siguiente manera:

 ApManager.isApOn(YourActivity.this); // check Ap state :boolean ApManager.configApState(YourActivity.this); // change Ap state :boolean 

Espero que esto ayude a alguien

No hay métodos en el SDK de Android pertenecientes a la función de hotspot WiFi – lo siento!

Puede utilizar el siguiente código para habilitar, deshabilitar y consultar el estado directo wifi mediante programación.

 package com.kusmezer.androidhelper.networking; import java.lang.reflect.Method; import com.google.common.base.Preconditions; import android.content.Context; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.util.Log; public final class WifiApManager { private static final int WIFI_AP_STATE_FAILED = 4; private final WifiManager mWifiManager; private final String TAG = "Wifi Access Manager"; private Method wifiControlMethod; private Method wifiApConfigurationMethod; private Method wifiApState; public WifiApManager(Context context) throws SecurityException, NoSuchMethodException { context = Preconditions.checkNotNull(context); mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); wifiControlMethod = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class,boolean.class); wifiApConfigurationMethod = mWifiManager.getClass().getMethod("getWifiApConfiguration",null); wifiApState = mWifiManager.getClass().getMethod("getWifiApState"); } public boolean setWifiApState(WifiConfiguration config, boolean enabled) { config = Preconditions.checkNotNull(config); try { if (enabled) { mWifiManager.setWifiEnabled(!enabled); } return (Boolean) wifiControlMethod.invoke(mWifiManager, config, enabled); } catch (Exception e) { Log.e(TAG, "", e); return false; } } public WifiConfiguration getWifiApConfiguration() { try{ return (WifiConfiguration)wifiApConfigurationMethod.invoke(mWifiManager, null); } catch(Exception e) { return null; } } public int getWifiApState() { try { return (Integer)wifiApState.invoke(mWifiManager); } catch (Exception e) { Log.e(TAG, "", e); return WIFI_AP_STATE_FAILED; } } } 

Su mejor apuesta será ver la clase WifiManager. Específicamente la función setWifiEnabled(bool) .

Consulte la documentación en: http://developer.android.com/reference/android/net/wifi/WifiManager.html#setWifiEnabled(boolean)

Un tutorial sobre cómo usarlo (incluyendo los permisos que necesita) se puede encontrar aquí: http://www.tutorialforandroid.com/2009/10/turn-off-turn-on-wifi-in-android-using.html

Esto funciona bien para mi:

 WifiConfiguration apConfig = null; Method method = wifimanager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE); method.invoke(wifimanager, apConfig, true); 

Tengo que publicar api no oficial para el mismo, es contiene más que sólo hotspot activar on/off . enlazar

Para el enlace DOC de la API.

 WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE); wifiManager.setWifiEnabled(status); 

Donde el estatus puede ser true o false

Add permission manifest: <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

  • Compruebe si la red ScanResult ya está configurada (existe en la lista getConfiguredNetworks ())
  • ¿Es posible intercambiar mensajes entre 2 dispositivos Android a través de wifi?
  • Compartir imágenes desde un dispositivo Android a otro a través de WiFi
  • ¿Puedo encontrar la dirección MAC de mi punto de acceso en Android?
  • ¿Qué pasará con las conexiones existentes cuando cambie entre 3g / wifi
  • Android Compruebe si hay WiFi pero no Internet
  • Obtener SSID cuando WIFI está conectado
  • Android: ¿Conectar dos teléfonos inalámbricamente?
  • Cómo probar descargar y subir velocidad wifi / 3g?
  • Aplicación de Android Dispositivo Wi-Fi - Conectividad AP
  • Cómo crear WPA personalizado Hotspot con ssid y contraseña en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.