在Android中检查WiFi和GPS是否已连接?

时间:2010-06-04 10:32:42

标签: android gps wifi

我需要在运行时检查手机中的wifi是打开还是关闭?

如果没有连接,我想显示对话框并直接转到设置/无线控件以便用户启用它。

用于手机的wifi和 Gps staus 。怎么做?哪个意图为此醒来?有什么想法吗?

4 个答案:

答案 0 :(得分:11)

要检查设备是通过手机还是wifi连接,您可以使用以下代码:

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

//mobile
State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();

//wifi
State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();

然后像这样使用它:

if (mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING) {
    //mobile
} else if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING) {
    //wifi
}

答案 1 :(得分:6)

您可以使用WifiManager课程来获取Wi-Fi的状态。

有关打开Wi-Fi设置的问题,请参阅this。这个问题适用于GPS状态。

答案 2 :(得分:0)

private boolean isNetworkAvailable() {
    ConnectivityManager connManager = (ConnectivityManager) 
            getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connManager.getActiveNetworkInfo();
    return activeNetworkInfo.isConnected();
}

public void onClick(DialogInterface dialog, int id) {
    // ...
    if (isNetworkAvailable()) {
        t3.setText("The Internet is available");
    } else {
        t3.setText("internet is not available");
    }
}

答案 3 :(得分:0)

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

//mobile
State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();

//wifi
State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();