小编Tar*_*man的帖子

强制 Android 应用连接到某个 WiFi 网络

我正在构建一个连接到某个没有互联网访问权限的 WiFi 网络的应用程序我通过该应用程序(而不是通过设置)添加了网络配置,以便我能够启用/禁用该网络。

该应用程序的工作原理如下:

1-用户按下按钮。

2-我检查WiFi是否启用,如果没有,我启用它。另外,如果手机已经连接到 WiFi 网络,我会断开它与该网络的连接并连接到我的(工作正常)。

3-我使用以下方法连接到网络(启用WiFi后):

mWifiManager.enableNetwork(networkId, true);//I have the network ID from the list of configured networks.
mWifiManager.reconnect();
Run Code Online (Sandbox Code Playgroud)

但是,如果 WiFi 最初被禁用,这似乎不起作用,WiFi 被启用但并不总是连接到我的网络,它有时会连接到其他配置的网络(如果可用)。

我尝试为我的网络提供高优先级(高于所有其他配置的网络),但没有任何区别。

在启用 WiFi 之前,我还尝试启用网络,但它不起作用。

我尝试添加一个 mWifiManager.disconnect(); 但没有变化。

mWifiManager.disonnect();
mWifiManager.enableNetwork(networkId, true);
mWifiManager.reconnect();
Run Code Online (Sandbox Code Playgroud)

所以我有一些问题:

Q1-为什么当您已经连接到 WiFi 网络时它可以工作,但如果禁用 WiFi 则不能?

Q2-是否有任何有效的方法可以强制应用程序连接到特定网络?(我正在使用 Android 7.0 API 24)。

这是我的代码:

int mID;
String mSSID;
String mPASSWORD;
public void connectToWiFi(String ssid, String key) {
    mSSID = ssid;
    mPASSWORD = key;
    if (!mWifiManager.isWifiEnabled()) {
        WifiUtils.withContext(mContext).enableWifi(this::enableResult);
        //Also tried 
       // boolean wifiEnabled …
Run Code Online (Sandbox Code Playgroud)

api android wifi

5
推荐指数
1
解决办法
1301
查看次数

标签 统计

android ×1

api ×1

wifi ×1