【问题标题】:How to check My test android device is connected to internet or not?如何检查我的测试安卓设备是否连接到互联网?
【发布时间】:2015-09-08 05:40:47
【问题描述】:
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();
    }
}

我已经编写了这段代码,但我收到了类似“不幸的是您的程序已停止”之类的错误。请帮助我.. 提前致谢

【问题讨论】:

标签: android android-internet


【解决方案1】:

您需要将此添加到您的androidmanifest.xml

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

【讨论】:

    【解决方案2】:

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

    Android Detect Internet Connection Status

    的Demo

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

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

    【讨论】:

      【解决方案3】:

      调用这个方法

      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" />
      

      【讨论】:

        【解决方案4】:

        这是适合我的代码。在你的 utils 中定义这个类。

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

        然后,在要检查连接状态的 Activity 中,使用,

        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" /> 
        

        清单中的权限。

        【讨论】:

          【解决方案5】:

          您将通过以下两种方法检查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;
                  }
          

          【讨论】:

            猜你喜欢
            • 2018-01-29
            • 2023-03-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-19
            • 2015-05-09
            • 2019-12-04
            • 2015-05-25
            相关资源
            最近更新 更多