WiFi状态未启用

Kam*_*one 8 android android-wifi

我正在尝试创建一个用于启用和禁用wifi的小部件.

if(myWifiManager.isWifiEnabled()){
            System.out.println("Toggle Wifi Enabled going to disable");
            myWifiManager.setWifiEnabled(false);
        }
        else{
            System.out.println("Wifi Disabled going to enable ");

            myWifiManager.setWifiEnabled(true);
            System.out.println("WI: "+myWifiManager.isWifiEnabled());
        }
Run Code Online (Sandbox Code Playgroud)

这是我使用禁用部分的代码工作正常,但启用部分不能正常工作.启用无线网络后不久我打印wifi状态我得到的是假的.

Dha*_*tri 9

这是如何在Android中打开和关闭wifi.

首先,您需要在清单文件中声明以下内容

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
Run Code Online (Sandbox Code Playgroud)

在您的Activity类上执行此操作之后

private WifiManager wifiManager;
@Override 
public void onCreate(Bundle icicle) {
 ....................
 wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
 if(wifiManager.isWifiEnabled()){
 wifiManager.setWifiEnabled(false);
 }else{
wifiManager.setWifiEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)

}

说明

从我们的系统获取Wifi服务

wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
Run Code Online (Sandbox Code Playgroud)

检查我们的wifi当前是打开还是关闭

if(wifiManager.isWifiEnabled()){
Run Code Online (Sandbox Code Playgroud)

打开/关闭我们的wifi wifiManager.setWifiEnabled();

参考

WifiEnabler

http://google-androidlovers.blogspot.com/2012/01/scan-for-wireless-networks-in-android.html

http://www.java2s.com/Open-Source/Android/android-platform-apps/Settings/com/android/settings/wifi/WifiApEnabler.java.htm

  • UPDATE_DEVICE_STATS仅用于系统应用程序 (2认同)