如果互联网连接在Android中不可用,如何处理?

时间:2013-12-16 06:42:57

标签: android performance android-intent connection

在我的应用程序中,我希望能够检查互联网连接是否可用。

我想要的是什么:

假设连接不可用,应用程序应重定向到设置页面以设置“启用连接”。

以下是我找到连接可用性的代码...

public Map<String, String> getConnectionDetails(Context context) {
    Map<String, String> networkDetails = new HashMap<String, String>();
    try {
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo wifiNetwork = connectivityManager
                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        if (wifiNetwork != null && wifiNetwork.isConnected()) {

            networkDetails.put("Type", wifiNetwork.getTypeName());
            networkDetails.put("Sub type", wifiNetwork.getSubtypeName());
            networkDetails.put("State", wifiNetwork.getState().name());
        }

        NetworkInfo mobileNetwork = connectivityManager
                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        if (mobileNetwork != null && mobileNetwork.isConnected()) {
            networkDetails.put("Type", mobileNetwork.getTypeName());
            networkDetails.put("Sub type", mobileNetwork.getSubtypeName());
            networkDetails.put("State", mobileNetwork.getState().name());
            if (mobileNetwork.isRoaming()) {
                networkDetails.put("Roming", "YES");
            } else {
                networkDetails.put("Roming", "NO");
            }
        }
    } catch (Exception e) {
        networkDetails.put("Status", e.getMessage());
    }
    return networkDetails;
}

而且我会像以下那样举杯祝酒

Map<String, String> networkDetails = networkstate.getConnectionDetails(getApplicationContext());
    if (networkDetails.isEmpty()) {
        Toast.makeText(getApplicationContext(), "Internet Connection unavailable", Toast.LENGTH_SHORT).show();
    } else {
        Toast.makeText(getApplicationContext(), "Internet Connection available", Toast.LENGTH_SHORT).show();
    }

请给出建议......

1 个答案:

答案 0 :(得分:1)

您可以尝试

 if (networkDetails.isEmpty()) {
       Intent myIntent = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
       startActivity(myIntent);
    }

这将显示设置以允许配置无线控制,如Wi-Fi,蓝牙和移动网络。