【问题标题】:Checking internet connectivity in android检查android中的互联网连接
【发布时间】:2016-01-16 19:22:22
【问题描述】:

我正在尝试在接收短信时检查互联网连接。 但是我的服务在更改互联网状态时强制关闭。例如,如果我启用了 wifi,它工作正常,但是当我禁用 wifi 应用程序时,应用程序会因错误而关闭。 我在 onReceive 函数中使用此代码。 这是代码。

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

     NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
     boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();

     if(isConnected == true) { 
            Toast.makeText(context, "Internet", Toast.LENGTH_LONG).show();
     }
     else if(isConnected == false){
            Toast.makeText(context, "No Internet", Toast.LENGTH_LONG).show();
     }    

【问题讨论】:

标签: android connection android-wifi connectivity android-internet


【解决方案1】:

尝试使用此代码

在清单文件中添加权限

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


public class ConnectionDetector {
public static boolean isConnectingToInternet(Context context){
    ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivity != null) 
    {
        NetworkInfo[] info = connectivity.getAllNetworkInfo();
        if (info != null) 
            for (int i = 0; i < info.length; i++) 
                if (info[i].getState() == NetworkInfo.State.CONNECTED)
                {
                    return true;
                }

    }
    return false;
 }
}

打电话

  ConnectionDetector.isConnectingToInternet(LoginActivity.this);

【讨论】:

    【解决方案2】:

    尝试使用此代码

        WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
        wifiManager.setWifiEnabled(status);
    
       Also add Permission in Manifest File :
       <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    

    【讨论】:

    • 它只会检测 wifi 而不会检测互联网。我说的对吗?
    【解决方案3】:

    你可以在下面添加

     <!-- Internet Permissions -->
    <uses-permission android:name="android.permission.INTERNET" />
    
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    
    <!-- Network State Permissions -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    

    请查看此演示

    1. Android Detect Internet Connection Status

    【讨论】:

    • 它没有帮助。 ` `
    • 它的完美权限
    • 但这并没有解决问题。
    【解决方案4】:

    我使用此代码
    新建类,试试

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

    打电话

    Network.isNetworkAvailable(Activity Name.this);
    

    并使用此权限

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

    【讨论】:

      猜你喜欢
      • 2012-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-28
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多