Проверка, подключен ли Wi-Fi, возвращает false, даже если он подключен

Я работаю над проектом Android и пытаюсь проверить, подключено ли устройство Android к Wi-Fi, однако моя функция всегда возвращает false, даже если мое устройство успешно подключено к Wi-Fi.

В конструкторе класса я передаю контекст вызывающего метода, а в конструкторе создаю экземпляр ConnnectivityManager

Ниже конструктор

public NetworkManagement(Context context)
{
    this.context = context;
    connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
}

Ниже приведена моя функция, с которой у меня возникла проблема.

public boolean isConnectedToWifi()
{
    NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    if (networkInfo.isConnected())
    {
        return true;
    }
    else
    {
        return false;
    }
}

Несмотря на то, что мое устройство подключено к сети Wi-Fi, и я могу успешно подключиться к Интернету, приведенная выше функция всегда будет возвращать false, но я не понимаю, почему.

Спасибо за любую помощь, которую вы можете предоставить.


person Boardy    schedule 22.09.2013    source источник


Ответы (1)


public class NetworkManagement
{
    public Context context;

    public NetworkManagement(Context context)
    {
        this.context = context;     
    }

    public boolean isConnectedToWifi()
    {
        ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        if (networkInfo.isConnected())
        {
            return true;
        }
        else
        {
            return false;
        }
    }

}

и позвони

//tested with context=getApplicationContext();
NetworkManagement a = new NetworkManagement(context);
Boolean z = a.isConnectedToWifi();

z должен вернуть его должным образом

Изменить: он все еще не работает должным образом, я так понимаю. Если это все еще не так, это будет ошибкой в ​​контексте

person Orphamiel    schedule 22.09.2013
comment
Это почти тот же код, который я опубликовал в своем вопросе. - person Boardy; 23.09.2013
comment
Спасибо, я использую метод getApplicationContext (). Если это имеет значение, контекст приложения извлекается из службы и передается адаптеру синхронизации, который затем используется в методе performSync адаптера синхронизации. - person Boardy; 23.09.2013