以编程方式打开wifinetworking连接

是否有可能以编程方式打开wifi热点,以启用tethering? 我已经尝试了这里和这里的代码。 这两个示例都毫无例外地执行,但是当我在wifi设置中查看“绑定和便携式热点”部分时,绑定仍然是禁用的。 这仅适用于内部Google应用程序吗?

编辑 :我正在使用Android 5.1,我试图做到这一点,而不必根电话。

Solutions Collecting From Web of "以编程方式打开wifinetworking连接"

尝试下面的代码,以编程方式打开wifi tethering。 我已经testing过,它在我的应用程序中工作。

public class WifiAccessManager { private static final String SSID = "1234567890abcdef"; public static boolean setWifiApState(Context context, boolean enabled) { //config = Preconditions.checkNotNull(config); try { WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); if (enabled) { mWifiManager.setWifiEnabled(false); } WifiConfiguration conf = getWifiApConfiguration(); mWifiManager.addNetwork(conf); return (Boolean) mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class).invoke(mWifiManager, conf, enabled); } catch (Exception e) { e.printStackTrace(); return false; } } public static WifiConfiguration getWifiApConfiguration() { WifiConfiguration conf = new WifiConfiguration(); conf.SSID = SSID; conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); return conf; } } 

用法:

 WifiAccessManager.setWifiApState(context, true); 

权限要求:

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