Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以编程方式打开wifi连接_Java_Android_Android Wifi - Fatal编程技术网

Java 以编程方式打开wifi连接

Java 以编程方式打开wifi连接,java,android,android-wifi,Java,Android,Android Wifi,是否可以通过编程方式打开wifi热点以启用栓系?我已经试过了密码和密码。这两个示例都毫无例外地执行,但当我查看wifi设置中的“栓系和便携式热点”部分时,栓系仍然处于禁用状态。这仅适用于内部谷歌应用程序吗 编辑:我正在使用Android 5.1,我正在尝试在不必根目录手机的情况下执行此操作。尝试以下代码,以编程方式打开wifi连接。我已经测试过了,它在我的应用程序中运行 public class WifiAccessManager { private static final Stri

是否可以通过编程方式打开wifi热点以启用栓系?我已经试过了密码和密码。这两个示例都毫无例外地执行,但当我查看wifi设置中的“栓系和便携式热点”部分时,栓系仍然处于禁用状态。这仅适用于内部谷歌应用程序吗


编辑:我正在使用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及以上版本中工作吗?可能是新的许可证。他们改变了一切,但我不知道该去哪里找。