如果没有连接wifi或互联网3G,如何提醒?

时间:2012-05-18 08:32:34

标签: android webview wifi toast

我正在创建使用

的应用程序
<uses-permission android:name="android.permission.INTERNET" />

我正在使用WebView启动URL。但是当移动设备没有连接到WIFI和Internet 3G时,WebView就会出现准确的URL链接。

如果没有互联网连接,我不希望用户在WebView中看到URL链接,我该怎么办?

最诚挚的问候, Virak

2 个答案:

答案 0 :(得分:2)

检查以下函数的返回值(对于在线为true,对于not为false)并根据您所追求的内容修改输出。

private boolean haveNetworkConnection() {
        boolean haveConnectedWifi = false;
        boolean haveConnectedMobile = false;

        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo[] netInfo = cm.getAllNetworkInfo();
        for (NetworkInfo ni : netInfo) {
            if (ni.getTypeName().equalsIgnoreCase("WIFI"))
                if (ni.isConnected())
                    haveConnectedWifi = true;
            if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
                if (ni.isConnected())
                    haveConnectedMobile = true;
        }
        return haveConnectedWifi || haveConnectedMobile;
    }

如果您想要的是在没有连接的情况下显示弹出窗口或祝酒词,那么在您的活动中使用该功能将允许您执行以下操作,这将显示Toast。

if(!haveNetworkConnection()){
    Toast.makeText(this,"No internet connection",Toast.LENGTH_LONG).show();
}else{
    //Do whatever you need if there IS connectivity
}

我喜欢使用我给你的功能(几个月前我不知道我从哪里复制它)因为它允许我轻松修改它,如果我需要它只返回true如果我有wifi或移动互联网,例如,如果wifi连接可用,我可以下载高清视频

答案 1 :(得分:0)

检查互联网连接的示例代码;

public static boolean checkInternetConnection(Context context) {

        ConnectivityManager conMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

        // ARE WE CONNECTED TO THE NET?
        if (conMgr.getActiveNetworkInfo() != null
                && conMgr.getActiveNetworkInfo().isAvailable()
                && conMgr.getActiveNetworkInfo().isConnected()) {
            return true;
        } else {
            Log.w(TAG, "Internet Connection NOT Present");
            return false;
        }
    }