【问题标题】:android internet connection avalability安卓互联网连接可用性
【发布时间】:2016-01-24 13:30:52
【问题描述】:

在尝试并在 stackoverflow 上搜索解决 android 上的互联网连接错误的方法后,我没有发现任何适合我的方法。我尝试了您可以在底部看到的代码,但它不适用于互联网连接错误。每次浏览器中的url不是http://192./loc/index.php时都会执行mWebView.loadUrl("file:///android_asset/myerrorpage.html");。当我在 index.php 进行重定向时,会显示错误文件。我怎样才能改变它,或者知道任何人检查互联网连接可用性的代码,然后做点什么?

    public boolean isOnline() {
            ConnectivityManager cm =
                (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo netInfo = cm.getActiveNetworkInfo();
            return netInfo != null && netInfo.isConnectedOrConnecting();
        }

    public boolean isInternetAvailable() {
            try {
                InetAddress ipAddr = InetAddress.getByName("google.com"); 
                if (ipAddr.equals("")) {
                    return false;
 mWebView.loadUrl("file:///android_asset/myerrorpage.html");
                } else {
                    return true;

@Override
        public void onCreate(Bundle savedInstanceState) {


            setContentView(R.layout.activity_localy);
            mWebView = (WebView) findViewById(R.id.webview);
            // Brower niceties -- pinch / zoom, follow links in place
            mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
            mWebView.setWebViewClient(new GeoWebViewClient());
            // Below required for geolocation
            mWebView.getSettings().setJavaScriptEnabled(true);
            mWebView.getSettings().setGeolocationEnabled(true);
            mWebView.setWebChromeClient(new GeoWebChromeClient());     
            // Load google.com
            mWebView.loadUrl("http://192./loc/index.php");


        }
                }
            } catch (Exception e) {
                return false;
            }

        }

【问题讨论】:

  • 好的,你的IP地址看起来不对,它是一个四点分符号,即。 w.x.y.z.对于初学者。你需要添加额外的代码来检查是否有连接,你搜索了吗? sidebar to the right ---> 上有一个@
  • 我为stackoverflow编辑我的IP地址
  • 192.168.x.y 或 192.169.x.y 在家庭 LAN 中很常见,因为无论如何你都会在公共 IP 地址后面,所以没有什么可以放弃的。

标签: java android webview error-handling


【解决方案1】:

你的问题不是很清楚。 如果你需要检查你需要的连接:

public boolean isOnline() {
    ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    return netInfo != null && netInfo.isConnectedOrConnecting();
}

如果需要检查真正的互联网连接,您可以尝试以下操作:

public boolean isInternetAvailable() {
        try {
            InetAddress ipAddr = InetAddress.getByName("google.com"); 
            if (ipAddr.equals("")) {
                return false;
            } else {
                return true;
            }
        } catch (Exception e) {
            return false;
        }

    }

并将 ACCESS_NETWORK_STATE 权限添加到清单中。

【讨论】:

  • 好的,我稍微编辑一下我的代码。我在哪里可以将我的代码添加到您的第二个代码 sn-p 中,或者我可以在哪里添加您的第二个代码 sn-p 在我的代码中?
  • 我认为你需要先调用 isOnline 方法。如果它返回 true,您可以调用 isInternetAvailable 方法。您可以在需要使用的地方添加。
  • 您需要调用 onCreate 方法中的方法,否则将永远无法工作。您还需要在 return 语句之前加载您的页面:“myerrorpage.html”,否则它将永远不会调用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
  • 2011-01-03
  • 1970-01-01
  • 2016-05-30
相关资源
最近更新 更多