如何检查我的测试Android设备是否连接到互联网?

时间:2015-09-08 05:40:48

标签: android android-internet

protected boolean isOnline()            
{
      ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
      NetworkInfo info = cm.getActiveNetworkInfo();
      if (info != null && info.isConnectedOrConnecting()) {
        return true;
      }else
      {
        return  false;
      }
}
public void requestData()
{
    if (isOnline())
    {
        Toast.makeText(getApplicationContext(), "connected", Toast.LENGTH_LONG).show();
    }
    else
    {
        Toast.makeText(getApplicationContext(), "Niot Connected", Toast.LENGTH_LONG).show();
    }
}

我已经编写了这段代码,但是我收到了类似&#34的错误;不幸的是你的程序已经停止" ..请帮帮我.. 在此先感谢

5 个答案:

答案 0 :(得分:0)

您需要将此添加到androidmanifest.xml

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

答案 1 :(得分:0)

请检查此链接 http://www.androidhive.info/2012/07/android-detect-internet-connection-status/

Android检测互联网连接状态

的演示

要访问互联网,我们需要INTERNET权限

要检测网络状态,我们需要ACCESS_NETWORK_STATE权限

答案 2 :(得分:0)

调用此方法

private boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager 
          = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}

并声明权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

答案 3 :(得分:0)

这里的代码对我来说很好。在您的工具中定义此类。

    public class InternetConnection {

    public static boolean isNetworkAvailable(Context context) {
        ConnectivityManager connectivityManager
                = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null;
    }
}

然后,在要检查连接状态的活动内,使用

if(!(InternetConnection.isNetworkAvailable(this))){
            internetActive = false;
            Toast.makeText(this, "Please try again with active Internet connection", Toast.LENGTH_LONG).show();
        }
        else {
// your code if device is connected to internet
}

确保你有

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

你的清单中的权限。

答案 4 :(得分:0)

您将使用以下两种方法检查是否连接了WIFI和移动数据:

public boolean checkWIFIInternetConn() {
        //Create object for ConnectivityManager class which returns network related info
        ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
        //If connectivity object is not null
        if (connectivity != null) {
            //Get network info - WIFI internet access
            NetworkInfo info = connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI);


            if (info != null) {
                //Look for whether device is currently connected to WIFI network
                if (info.isConnected()) {
                    return true;
                }
            }
        }
        return false;
    }

     public boolean checkMobileInternetConn() {
            //Create object for ConnectivityManager class which returns network related info
            ConnectivityManager connectivity = (ConnectivityManager) _context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            //If connectivity object is not null
            if (connectivity != null) {
                //Get network info - Mobile internet access
                NetworkInfo info = connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

                if (info != null) {
                    //Look for whether device is currently connected to Mobile internet
                    if (info.isConnected()) {
                        return true;
                    }
                }
            }
            return false;
        }
相关问题