Checks whether there is some connection currently established or not. - Android Network

Android examples for Network:Network Connection

Description

Checks whether there is some connection currently established or not.

Demo Code

/*//  w  ww .  ja  va2s. c  om
 * ------------------------------------------------------------------------------------------------=
 *                    Copyright (C) 2014 Martin Albedinsky [Wolf-ITechnologies]
 * ------------------------------------------------------------------------------------------------=
 *         Licensed under the Apache License, Version 2.0 or later (further "License" only).
 * -------------------------------------------------------------------------------------------------
 * You may use this file only in compliance with the License. More details and copy of this License 
 * you may obtain at
 * 
 *       http://www.apache.org/licenses/LICENSE-2.0
 * 
 * You can redistribute, modify or publish any part of the code written within this file but as it 
 * is described in the License, the software distributed under the License is distributed on an 
 * "AS IS" BASIS, WITHOUT WARRANTIES or CONDITIONS OF ANY KIND.
 * 
 * See the License for the specific language governing permissions and limitations under the License.
 * ------------------------------------------------------------------------------------------------=
 */
//package com.java2s;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;

public class Main {
    /**
     * Checks whether there is some connection currently established or not.
     * <p>
     * See {@link android.net.ConnectivityManager#getActiveNetworkInfo()} for additional info.
     *
     * @param context Context used to access {@link android.net.ConnectivityManager}.
     * @return {@code True} if there is some connection available and it is currently established,
     * {@code false} otherwise.
     * @see #isConnectionEstablished(android.content.Context, int)
     */
    public static boolean isConnectionEstablished(@NonNull Context context) {
        final NetworkInfo info = obtainEstablishedConnectionInfo(context);
        return info != null && info.isConnected();
    }

    /**
     * Checks whether there is connection of the requested <var>connectionType</var> currently established
     * or not.
     * <p>
     * See {@link android.net.NetworkInfo#isConnected()} for additional info.
     *
     * @param context        Context used to access {@link android.net.ConnectivityManager}.
     * @param connectionType Type of the desired connection of which current connectivity to check.
     * @return {@code True} if there is connection of the requested type available and it is
     * currently established, {@code false} otherwise.
     * @see #isConnectionEstablished(android.content.Context)
     * @see #isConnectionAvailable(android.content.Context, int)
     */
    public static boolean isConnectionEstablished(@NonNull Context context,
            int connectionType) {
        final NetworkInfo info = accessManager(context).getNetworkInfo(
                connectionType);
        return info != null && info.isConnected();
    }

    /**
     * Obtains info of the currently established connection.
     *
     * @param context Context used to access {@link android.net.ConnectivityManager}.
     * @return Info provided by {@link android.net.ConnectivityManager} or {@code null} if there
     * is on connection currently established.
     * @see #obtainEstablishedConnectionType(android.content.Context)
     * @see #isConnectionEstablished(android.content.Context)
     */
    @Nullable
    public static NetworkInfo obtainEstablishedConnectionInfo(
            @NonNull Context context) {
        return accessManager(context).getActiveNetworkInfo();
    }

    /**
     * Accesses the ConnectivityManager service using the given <var>context</var>.
     *
     * @param context Context from which ConnectivityManager should be accessed.
     * @return An instance of ConnectivityManager.
     */
    private static ConnectivityManager accessManager(Context context) {
        return (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
    }
}

Related Tutorials