Verificar conexión de red en aplicación Android.

El siguiente código te permitirá verificar la conectividad a red de una aplicación Android.

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="critza.apps.conectividad.MainActivity">
    <Button
        android:id="@+id/btnValidaConectividad"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Verifica Conectividad"
        android:layout_gravity="center"
        android:onClick="btnValidaConectividad_onClick"/>
</LinearLayout>

MainActivity.java

//region Paquete.
package critza.apps.conectividad;
//endregion

//region Bibliotecas de clases.

import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;
//endregion

public class MainActivity extends AppCompatActivity {

    //region Método encargado de crear la actividad.
    /**
     * Método encargado de crear la actividad.
     * @param savedInstanceState Instancia de estado.
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    //endregion

    //region Controlador de evento Click del Button [btnValidaConectividad].
    /**
     * Controlador de evento Click del Button [btnValidaConectividad].
     * @param objectSender Button btnValidaConectividad.
     */
    public void btnValidaConectividad_onClick(View objectSender)
    {
        try
        {
            if(VerificaConectividad())
                Toast.makeText(this, "Conexión exitosa.",Toast.LENGTH_LONG).show();
            else
                Toast.makeText(this,"Valida tu conexión WIFI o Red de Datos y vuelve a intentarlo.", Toast.LENGTH_LONG).show();
        }
        catch (Exception ex)
        {
            Toast.makeText(this,ex.getMessage(),Toast.LENGTH_LONG).show();
        }
    }
    //endregion

    //region Método para validar la conectividad a la red.
    /**
     * Método para validar la conectividad a la red.
     * @return Estado de la conexión.
     */
    private boolean VerificaConectividad()
    {
        boolean _resultado = false;

        try {
            NetworkInfo _informacionRed = (((ConnectivityManager) getSystemService(this.CONNECTIVITY_SERVICE))).getActiveNetworkInfo();

            boolean _es3g = _informacionRed.getType() == ConnectivityManager.TYPE_MOBILE;
            boolean _esWiFi = _informacionRed.getType() == ConnectivityManager.TYPE_WIFI;
            boolean _conexionEstablecida = _informacionRed.isConnectedOrConnecting();

            _resultado = ((_es3g || _esWiFi) && _conexionEstablecida) ? true : false;
        } catch (Exception ex) {
            throw ex;
        } finally {
            return _resultado;
        }
    }
    //endregion
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="critza.apps.conectividad" android:installLocation="auto">
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

 

Obtener Hash Key de publicación para una aplicación Android.

Para poder realizar la publicación de una aplicación Android siempre será necesario saber cuál  es el Hash Key de nuestra aplicación recién firmada, ya que generalmente una aplicación Android hace uso de API´s, las cuales durante el periodo de desarrollo hacen uso de un Hash Key de Depuración, pero dicho Hash se vuelve inservible después de firmar la aplicación con un  certificado, ya que el apk generado estará representado por un nuevo Hash, el cual es conocido como Hash Key de Release.

Dicho lo anterior, esto representa un punto crítico para la publicación de una aplicación, debido a que si la configuración de las API´s no es actualizada haciendo referencia al Hash Key de Release de la aplicación, esta no podrá consumir la funcionalidad brindada por las API´s.

Pero no te preocupes, generar el Hash es fácil, siempre y cuando tengas a la mano tu certificado con el cual firmaste tu aplicación (archivo con extensión .jks) y la firma del mismo.

Si cuentas con los requisitos antes mencionados, solo será necesario que realices los siguientes pasos:

1.- Accede a tu Símbolo de Sistema como administrador.

cmd

2.- Accede a la siguiente ruta de tu sistema:

C:\Program Files\Java\jdk1.8.0_121\bin>

Cabe mencionar que la ruta puede cambiar en cuestión de la versión del JDK que tengas instalada.

ruta

3.- Ingresa la siguiente instrucción y presiona la tecla <Enter>:

keytool -list -v -keystore "Ruta del certificado"

rutaCertificado

4.- Después de realizar la acción anterior, la consola te solicitara que ingreses el password del certificado, el cual deberás de proporcionar y al terminar de escribirlo tendrás que presionar la tecla <Enter>. 

ingresaPassword

5.- En la consola se te presentara la información de tu certificado incluyendo las huellas digitales del mismo, por lo que deberás de tomar el hash que aparece en el apartado SHA1, el cual representa el Hash Key de Release de tu aplicación :) 

hashKeyRelease