我应该如何继续检查移动数据连接

How should I go ahead and check mobile data connectivity

如果没有互联网连接,我需要一条消息来显示。目前,如果 wifi 关闭,则 toast 方法将起作用并且不会继续。但是,如果我在没有服务计划的情况下打开我的移动数据,它仍然会打开一个空白 activity。

这是我从这里得到的代码

public static boolean isInternetAvailable(Context context)
{
    NetworkInfo info = (NetworkInfo) ((ConnectivityManager)
            context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();

    if (info == null)
    {
        Log.d(TAG,"no internet connection");
        return false;
    }
    else
    {
        if(info.isConnected())
        {
            Log.d(TAG," internet connection available...");
            return true;
        }
        else
        {
            Log.d(TAG," internet connection");
            return true;
        }

下面是我的 onClick 方法。

newsButton.setOnClickListener(new View.OnClickListener() {
        @Override


        public void onClick(View view) {


if(CheckNetwork.isInternetAvailable(MainActivity.this)) //returns true if internet available
            {

                moveToNews();
            }
            else
            {
                Toast.makeText(MainActivity.this,"Please Check Your Internet Connection and Try Again",Toast.LENGTH_LONG*4000).show();
            }

检查互联网连接 -

private boolean isNetworkConnected() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

    return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected();
}

在清单文件中 -

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

检查我下面的代码

[1]。在 AndroidManifest.xml

中添加以下行 internet 权限
<uses-permission android:name="android.permission.INTERNET" />

[2]。在你的 MainActivity 或 Parent activity 上你想显示或转到下一个 activity 添加下面的代码

[2.1] 全局声明如下 变量

private boolean isInternetConnected;

[2.2] 将下行添加到 onCreate()

isInternetConnected = isNetworkConnected(getApplicationContext());

[2.3]在下面添加方法

public boolean isNetworkConnected(Context context)
    {
        if(context != null)
        {
            ConnectivityManager cm = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
            if (cm != null) {
                NetworkInfo ni = cm.getActiveNetworkInfo();
                if (ni == null) {
                    return false;
                } else
                    return true;
            }
            else
            {
                return true;
            }
        }
        else
        {
            return true;
        }
    }

[3]。将以下代码添加到此行 isInternetConnected = isNetworkConnected(getApplicationContext());

下方的 onCreate()
if(isInternetConnected){
  //Move to another Activity or display Toast
}
else{
  //Toast of not connected with Internet 
}

就是这样 ;)!!