自动和以编程方式连接到特定的WiFi接入点

 大笨猫的男人 发布于 2023-01-01 15:52

我需要让我的应用程序自动连接到特定SSID的密码.我正在尝试这个,但这就是我得到的:

错误:

非静态方法addNetwork(WifiConfiguration)不能从静态上下文中引用

错误:

非静态方法enableNetwork(int,boolean)不能从静态上下文中引用

final WifiManager wifiManager = (WifiManager) MainActivity.this.getSystemService(Context.WIFI_SERVICE);
final WifiConfiguration config = new WifiConfiguration();
config.SSID = "\"xxx\"";
config.preSharedKey = "\"123\"";
if (!wifiManager.isWifiEnabled()){
    wifiManager.setWifiEnabled(true);
    int networkId = WifiManager.addNetwork(config);
    WifiManager.enableNetwork(networkId, true);
}

Behnam.. 5

调用wifiManager对象enableNetwork()上的函数,而不是类.WifiManager

小心:w字母应该是小写的.

做同样的事情addNetwork().

编辑:

在您的清单中添加以下权限:



编辑2:

对于WPA,请更新您的配置,如下所示:

config.status = WifiConfiguration.Status.ENABLED;

config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);

config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);

EDIT3:

在行下方添加以下wifiManager.setWifiEnabled(true)行:

wifiManager.startScan();

编辑4:

如果您需要其他帮助,请阅读此问题和本文.祝好运.

1 个回答
  • 调用wifiManager对象enableNetwork()上的函数,而不是类.WifiManager

    小心:w字母应该是小写的.

    做同样的事情addNetwork().

    编辑:

    在您的清单中添加以下权限:

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

    编辑2:

    对于WPA,请更新您的配置,如下所示:

    config.status = WifiConfiguration.Status.ENABLED;
    
    config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
    
    config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
    

    EDIT3:

    在行下方添加以下wifiManager.setWifiEnabled(true)行:

    wifiManager.startScan();
    

    编辑4:

    如果您需要其他帮助,请阅读此问题和本文.祝好运.

    2023-01-01 15:55 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有