检查android中应用程序启动时的互联网连接

时间:2016-04-23 15:14:24

标签: java android

找到了一个可以检查互联网连接的代码here

但是我不知道如何实现或调用这个类或方法,因为我仍在使用android studio学习android编程。

请参阅下面的代码,并告诉我如何安排它以便在应用程序启动时启动它,包括说明它已连接的toast消息。

  <Application.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="Your Resource Dictionary Name"/>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Application.Resources>

3 个答案:

答案 0 :(得分:3)

首先将此权限添加到您的清单中:

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

然后在您的主Activity中创建连接管理器:

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

在onCreate(主要活动oncreate)中检查用户是否已连接。对于UI消息,您始终可以添加自己的自定义快餐栏或对话框。

if(connected()){
        Log.i("TRUE","User is connected");
    }else{
        Log.i("TRUE","User is not connected");
    }

答案 1 :(得分:2)

首先,在尝试确定是否存在可用的互联网连接时,调用网页并等待其响应并不是一个好的选择。

有内置辅助方法来检查连接,例如:

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

此外,如果您想要检查应用程序启动时的连接性,最好的选择是创建一个从android.app.Application扩展的新类,并覆盖onCreate方法,如下所示:

public class YourApplication extends android.app.Application {
    @Override
    public void onCreate() {
        super.onCreate();
        if (isNetworkAvailable()) {
            //Connected to the Internet
        } else {
            //Not connected
        }
    }
}

完整代码如下所示:

public class YourApplication extends android.app.Application {
    @Override
    public void onCreate() {
        super.onCreate();
        if (isNetworkAvailable()) {
            //Connected to the Internet
        } else {
            //Not connected
        }
    }

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

最后,在你的AndroidManifest.xml上设置名称为android:name =“。YourApplication”

<application
    android:name=".YourApplication"
    ... >

</application>

答案 2 :(得分:0)

hasActiveInternetConnection(getApplicationContext());方法中调用onCreate