Java 以编程方式打开wifi连接
是否可以通过编程方式打开wifi热点以启用栓系?我已经试过了密码和密码。这两个示例都毫无例外地执行,但当我查看wifi设置中的“栓系和便携式热点”部分时,栓系仍然处于禁用状态。这仅适用于内部谷歌应用程序吗Java 以编程方式打开wifi连接,java,android,android-wifi,Java,Android,Android Wifi,是否可以通过编程方式打开wifi热点以启用栓系?我已经试过了密码和密码。这两个示例都毫无例外地执行,但当我查看wifi设置中的“栓系和便携式热点”部分时,栓系仍然处于禁用状态。这仅适用于内部谷歌应用程序吗 编辑:我正在使用Android 5.1,我正在尝试在不必根目录手机的情况下执行此操作。尝试以下代码,以编程方式打开wifi连接。我已经测试过了,它在我的应用程序中运行 public class WifiAccessManager { private static final Stri
编辑:我正在使用Android 5.1,我正在尝试在不必根目录手机的情况下执行此操作。尝试以下代码,以编程方式打开wifi连接。我已经测试过了,它在我的应用程序中运行
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" />
感谢您的快速响应!这确实可以关闭wifi,但setWifiApState返回false,并且不会激活栓系。我需要手机吗?我正在尝试在不支持手机的情况下执行此操作。@Calummcall我需要支持手机吗?我不这么认为,因为我的设备没有根目录,并且正在工作。@Calummcall可能是您应该尝试使用setWifiApState方法中的printStackTrace查看错误。结果发现我缺少“更改网络状态”权限。谢谢你的帮助!这在棉花糖之前效果很好。现在它不再工作了。你知道如何让它在安卓6及以上版本中工作吗?可能是新的许可证。他们改变了一切,但我不知道该去哪里找。