Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android正在检查互联网连接_Android - Fatal编程技术网

Android正在检查互联网连接

Android正在检查互联网连接,android,Android,我正在制作一个应用程序,其中启动活动获取用户的位置,当它获取位置时,它会将用户重定向到另一个活动。但是当没有可用的internet时,它不能将用户重定向到另一个活动 private boolean isNetworkAvailable() { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkI

我正在制作一个应用程序,其中启动活动获取用户的位置,当它获取位置时,它会将用户重定向到另一个活动。但是当没有可用的internet时,它不能将用户重定向到另一个活动

private boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
这是我的主要活动代码的一部分:

protected void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(networkReceiver, filter);  //here i have registerd the receiver
// create class object
final GPSTracker gps = new GPSTracker(WelcomeActivity.this);
// check if GPS enabled
if (gps.canGetLocation()) {

    latitude = gps.getLatitude();
    longitude = gps.getLongitude();
    if (latitude != 0.0 && longitude != 0.0) {
        if (Utils.isNetworkAvailable(WelcomeActivity.this)) {
            fetchlocation.setText("Fetching your Location...");
            sendGetAddressRequest(latitude, longitude);
        }
        else
            fetchlocation.setText("No Internet Connectivity");
    } else {
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                latitude = gps.getLatitude();
                longitude = gps.getLongitude();
                if (latitude != 0.0 && longitude != 0.0) {
                    if (Utils.isNetworkAvailable(WelcomeActivity.this)) {
                        fetchlocation.setText("Fetching your Location...");
                        sendGetAddressRequest(latitude, longitude);
                    } else
                        fetchlocation.setText("No Internet Connectivity");
                } else {
                    Toast.makeText(WelcomeActivity.this, "Couldn't detect location", Toast.LENGTH_LONG).show();
                }
            }
        }, 5000);
    }


} else {
   // fetchlocation.setText("Enable Location First");
    gps.showSettingsAlert();
}

}
@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getExtras() != null) {
        NetworkInfo ni = (NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
        if (ni != null && ni.getState() == NetworkInfo.State.CONNECTED) {
            // we're connected
        }
    }
}
这是在onPause中:

@Override
protected void onPause() {
    unregisterReceiver(networkReceiver); // here i have unregistered the receiver
    super.onPause();
}
public boolean isNetworkConnected() {
    ConnectivityManager cm =
            (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnectedOrConnecting()) {
        return true;
    }
    return false;
}
这是我的网络连接代码:

protected void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(networkReceiver, filter);  //here i have registerd the receiver
// create class object
final GPSTracker gps = new GPSTracker(WelcomeActivity.this);
// check if GPS enabled
if (gps.canGetLocation()) {

    latitude = gps.getLatitude();
    longitude = gps.getLongitude();
    if (latitude != 0.0 && longitude != 0.0) {
        if (Utils.isNetworkAvailable(WelcomeActivity.this)) {
            fetchlocation.setText("Fetching your Location...");
            sendGetAddressRequest(latitude, longitude);
        }
        else
            fetchlocation.setText("No Internet Connectivity");
    } else {
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                latitude = gps.getLatitude();
                longitude = gps.getLongitude();
                if (latitude != 0.0 && longitude != 0.0) {
                    if (Utils.isNetworkAvailable(WelcomeActivity.this)) {
                        fetchlocation.setText("Fetching your Location...");
                        sendGetAddressRequest(latitude, longitude);
                    } else
                        fetchlocation.setText("No Internet Connectivity");
                } else {
                    Toast.makeText(WelcomeActivity.this, "Couldn't detect location", Toast.LENGTH_LONG).show();
                }
            }
        }, 5000);
    }


} else {
   // fetchlocation.setText("Enable Location First");
    gps.showSettingsAlert();
}

}
@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getExtras() != null) {
        NetworkInfo ni = (NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
        if (ni != null && ni.getState() == NetworkInfo.State.CONNECTED) {
            // we're connected
        }
    }
}
当没有可用的internet时,textview会将文本显示为Np internet Connectivity..当我打开internet时,它仍然显示为no internet Connectivity..我想要的是当internet来临或打开Wifi或网络数据时,textview必须将文本显示为获取您的位置,并将用户重定向到其他活动

private boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
如果此
布尔值为真,则表示您有网络连接,然后执行如下操作:

if(isNetworkAvailable()){
     // perform your operation here 
}
您还需要:

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

从活动中以这种方式呼叫:

getNetworkType(活动)

获取wifi或sim卡互联网: getDataType()方法: 有关更精确的详细信息(2G、3G或4G)。
您必须检查您是否连接到internet,而不仅仅是wifi网络。你可能想试试这个:

try {
        HttpURLConnection urlc = (HttpURLConnection) (new URL("http://google.com").openConnection());
        urlc.setRequestProperty("User-Agent", "Test");
        urlc.setRequestProperty("Connection", "close");
        urlc.setConnectTimeout(1500);
        urlc.connect();

        isConnected = true;

}catch (IOException e) {

        isConnected = false;

}