Layanan Konektivitas Jaringan Android

Layanan konektivitas jaringan Android memungkinkan kami untuk memeriksa informasi konektivitas jaringan perangkat. Hal ini sangat penting untuk memeriksa koneksi internet perangkat saat melakukan tugas yang didasarkan pada layanan internet seperti mengambil data dari server (internet) atau menulis data ke server.

Menggunakan Android Network Connectivity Services kita juga dapat menentukan jenis jaringan perangkat android. Mungkin dari jenis yang TYPE_WIFI (wifi), TYPE_MOBILE (mobile), TYPE_BLUETOOTH (Bluetooth), dll.

Contoh Layanan Konektivitas Jaringan Android

Mari kita membuat contoh sederhana untuk memeriksa konektivitas jaringan perangkat serta jenisnya.

Untuk mengakses konektivitas jaringan perangkat, kita perlu memberikan izin akses jaringan dalam file AndroidMenifest.xml.

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


Dalam file activity_main.xml layout tambahkan kode berikut. Untuk mengakses status jaringan perangkat, tidak ada persyaratan file layout. Di sini, kita menggunakan activity_main.xml file hanya untuk menyimpan status jenis jaringan.

File :activity_main.xml

<?xml version="1.0" encoding="utf-8"?>  
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:app="http://schemas.android.com/apk/res-auto"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    tools:context="example.android.com.networkconnectivityservice.MainActivity">  
 
    <TextView  
        android:id="@+id/textView"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:textSize="16dp"  
        android:layout_marginBottom="8dp"  
        android:layout_marginEnd="8dp"  
        android:layout_marginStart="8dp"  
        android:layout_marginTop="8dp"  
        android:contentDescription="networkstate"  
        android:text="Network state ?"  
        app:layout_constraintBottom_toBottomOf="parent"  
        app:layout_constraintEnd_toEndOf="parent"  
        app:layout_constraintRight_toRightOf="parent"  
        app:layout_constraintStart_toStartOf="parent"  
        app:layout_constraintTop_toTopOf="parent"  
        app:layout_constraintVertical_bias="0.183" />  
 
    <Button  
        android:id="@+id/button"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_marginEnd="8dp"  
        android:layout_marginStart="8dp"  
        android:text="Check Connection Type"  
        android:layout_marginTop="392dp"  
        app:layout_constraintEnd_toEndOf="parent"  
        app:layout_constraintStart_toStartOf="parent"  
        app:layout_constraintTop_toTopOf="parent" />  
 
</android.support.constraint.ConstraintLayout>  


Buat kelas java bernama NetworkState.java. Kelas ini berisi metode getConnectivityStatus() yang mengembalikan nilai bilangan bulat konstan atas dasar koneksi jaringan saat ini.

Kode context.getSystemService(Context.CONNECTIVITY_SERVICE) digunakan untuk mengembalikan contoh kelas ConnectivityManager yang mengakses properti jaringan.

File : JaringanState.java

package example.android.com.networkconnectivityservice;  
 
 
import android.content.Context;  
import android.net.ConnectivityManager;  
import android.net.NetworkInfo;  
 
public class NetworkState {  
    public static int TYPE_NOT_CONNECTED = 0;  
    public static int TYPE_WIFI = 1;  
    public static int TYPE_MOBILE = 2;  
 
    public static int getConnectivityStatus(Context context) {  
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);  
        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();  
        if (null != activeNetwork) {  
            if(activeNetwork.getType() == ConnectivityManager.TYPE_WIFI)  
                return TYPE_WIFI;  
 
            if(activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE)  
                return TYPE_MOBILE;  
        }  
        return TYPE_NOT_CONNECTED;  
    }  
 
    public static String getConnectivityStatusString(Context context) {  
        int conn = NetworkState.getConnectivityStatus(context);  
        String status = null;  
        if (conn == NetworkState.TYPE_WIFI) {  
            status = "Wifi enabled";  
        } else if (conn == NetworkState.TYPE_MOBILE) {  
            status = "Mobile data enabled";  
        } else if (conn == NetworkState.TYPE_NOT_CONNECTED) {  
            status = "Not connected to Internet";  
        }  
        return status;  
    }  
}  


Buat kelas receiver bernama NetworkReceiver.java dan perluas kelas BroadcastReciever. Kelas ini menangani perubahan yang terjadi dalam keadaan jaringan perangkat. Metode onReceive() kelas BroadcastReciever disebut ketika status jaringan perangkat berubah.

File : NetworkReceiver.java

package example.android.com.networkconnectivityservice;  
import android.content.BroadcastReceiver;  
import android.content.Context;  
import android.content.Intent;  
import android.widget.Toast;  
 
 
public class NetworkReceiver extends BroadcastReceiver {  
    static String  status =null;  
    @Override  
    public void onReceive(Context context, Intent intent) {  
        status = NetworkState.getConnectivityStatusString(context);  
        Toast.makeText(context, status, Toast.LENGTH_LONG).show();  
        if(status == "Wifi enabled"){  
            //your code when wifi enable  
        }  
        else if(status=="Mobile data enabled"){  
            //your code when TYPE_MOBILE network enable  
        }  
        else if(status=="Not connected to Internet"){  
            //your code when no network connected  
        }  
    }  
}  


Di kelas MainActivity.java, kita menampilkan status jaringan perangkat di TextView dengan mengklik Tombol.

File : MainActivity.java

package example.android.com.networkconnectivityservice;  
 
import android.support.v7.app.AppCompatActivity;  
import android.os.Bundle;  
import android.view.View;  
import android.widget.Button;  
import android.widget.TextView;  
import android.widget.Toast;  
 
public class MainActivity extends AppCompatActivity {  
 
    Button button;  
    TextView textView;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        button = findViewById(R.id.button);  
        textView = findViewById(R.id.textView);  
        button.setOnClickListener(new View.OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                NetworkReceiver receiver = new NetworkReceiver() ;  
                String networkStatus = receiver.status;  
                textView.setText("connection type: "+networkStatus);  
                Toast.makeText(getApplicationContext(), networkStatus, Toast.LENGTH_LONG).show();  
            }  
        });  
    }  
}  


Dalam AndroidMenifest.xml file, tambahkan izin akses jaringan dan penerima kelas yang menangani perubahan terjadi di BroadcastReceiver kelas.

File : AndroidMenifest.xml

<?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
    package="example.android.com.networkconnectivityservice">  
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
    <uses-permission android:name="android.permission.INTERNET"/>  
    <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>  
        <receiver  
            android:name=".NetworkReceiver"  
            android:enabled="true">  
            <intent-filter>  
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />  
                <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />  
            </intent-filter>  
        </receiver>  
    </application>  
 
</manifest>  


Output :

Network Connectivity


Berlangganan update artikel terbaru via email:

0 Response to "Layanan Konektivitas Jaringan Android"

Posting Komentar

Iklan Atas Artikel

Iklan Bawah Artikel