Layanan Konektivitas Jaringan Android
September 13, 2020
Add Comment
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.
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
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
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
Di kelas MainActivity.java, kita menampilkan status jaringan perangkat di TextView dengan mengklik Tombol. File : MainActivity.java
Dalam AndroidMenifest.xml file, tambahkan izin akses jaringan dan penerima kelas yang menangani perubahan terjadi di BroadcastReceiver kelas. File : AndroidMenifest.xml
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>
0 Response to "Layanan Konektivitas Jaringan Android"
Posting Komentar