繁体   English   中英

检查是否有活动的Internet连接

[英]Checking if there is an ACTIVE Internet Connection

我一直在摆弄Android开发,即使在网络打开的情况下,尝试检查是否存在活动的Internet连接也遇到了一些麻烦。

因为有时即使您已连接到WIFI或DATA,但有时还是无法连接。

每次单击按钮,我的应用程序都会崩溃。 关于布尔方法,我还是一个菜鸟。

谢谢您的任何提前帮助,如果你们想到我可以采用的更好的方法,我将不胜感激:D

这是我的主要活动:

  @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

btnCheck = (Button) findViewById(R.id.btnCheck);

    btnCheck.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (isInternetAvailable()){
                Toast.makeText(MainActivity.this, "There is a connection", Toast.LENGTH_SHORT).show();
            }
            else{
                Toast.makeText(MainActivity.this, "NO connection", Toast.LENGTH_SHORT).show();
            }

        }
    });

}

public boolean isInternetAvailable() {
   try {
        int timeoutMs = 1500;
        Socket sock = new Socket();
        SocketAddress sockaddr = new InetSocketAddress("8.8.8.8", 80);

        sock.connect(sockaddr, timeoutMs);
        sock.close();

        return true;
    } catch (IOException e) { return false; }

}

尝试下面的代码

 Boolean isInternetPresent = false;
    ConnectionDetector cd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    btnCheck = (Button) findViewById(R.id.btnCheck);

    btnCheck.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            cd = new ConnectionDetector(getApplicationContext());
            isInternetPresent = cd.isConnectingToInternet();

            if (isInternetPresent) {

                Toast.makeText(MainActivity.this, "There is a connection", Toast.LENGTH_SHORT).show();

            }else {

              Toast.makeText(MainActivity.this, "NO connection", Toast.LENGTH_SHORT).show();

                }

            }
        });

    }

也不要忘记在清单文件中添加Internet权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM