简体   繁体   English

如何检查手机上是否启用了WiFi

[英]How To Check if WiFi Enabled On Phone

I'm trying to develop an android app with java and xml, and I would like some guidance on how to determine if wifi is enabled on the phone that the app is on or not. 我正在尝试使用java和xml开发一个android应用程序,我想了解一些有关如何确定该应用程序是否在手机上启用了wifi的指导。 Any help would be appreciated. 任何帮助,将不胜感激。 I've tried using these methods, but they all don't detect if my wifi port is open or closed correctly. 我尝试使用这些方法,但是它们都无法检测到我的wifi端口是否正确打开或关闭。 I'm afraid these methods are out of date. 恐怕这些方法已经过时了。 Does anyone have an up to date method? 有人有最新的方法吗?

//determine if wifi is enabled
    //1st try
    wifi =Settings.Secure.getInt(cr, Settings.Secure.WIFI_ON);

    //second try
    wifi=Settings.Global.getInt(cr, Settings.Global.WIFI_ON, 0);

    //3rd try
    WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
    if (wifi.isWifiEnabled()){
        //wifi is enabled
        wifiInt=1;
    }
    else
        wifiInt=0;

Checking the state of WiFi can be done by obtaining an instance to the WiFi system service as below: 可以通过以下方法获取WiFi系统服务的实例来检查WiFi状态:

WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);

from this, the method isWifiEnabled() can be used to determine if WiFi is enabled. 由此,方法isWifiEnabled()可用于确定是否启用了WiFi。 As below: 如下:

WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
if (wifi.isWifiEnabled()){
    //TODO: Code to execute if wifi is enabled.
}

Both WiFi and Mobile data u can check this way.. 您可以通过这种方式检查WiFi和移动数据。

ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mData = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

if(mWifi.isConnected()||mData.isConnected()){
    //Do something when data is available
}

To check for any active network connection: 要检查任何活动的网络连接:

private boolean isNetworkAvailable() {

        //Call this method to check network connection.

        ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();

    }

You can also try to get wifi connected wifi name 您也可以尝试使wifi连接到wifi名称

WifiManager wifiManager = (WifiManager)HomeScreen.this.getSystemService(Context.WIFI_SERVICE);
            if(wifiManager != null) 
            {
                if(wifiManager.isWifiEnabled())
                {
                    WifiInfo connectedWifiInfo = wifiManager.getConnectionInfo();
                    if(connectedWifiInfo != null)
                    {
                        if(connectedWifiInfo.getBSSID() != null)
                        {   
                            // connected
                        }
                        else
                        {
                            // not connected
                        }
                    }
                    else
                    {
                        // not connected
                    }
                }
                else
                {
                    // not connected
                }
            }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM