Minggu, 06 Januari 2013

ConnectivityManager pada Android

Salah satu hal yang paling penting dalam pembuatan aplikasi yang dalam penggunaannya membutuhkan koneksi internet adalah developer perlu melakukan pengecekan terhadap status koneksi internet, apakah sudah online atau belum. Android menyediakan sebuah class yang bernama ConnectivityManager (android.net.ConnectivityManager) yang dapat digunakan untuk memanajemen koneksi internet.

Pada kasus di bawah ini, saya mencoba untuk melakukan pengecekan sederhana status koneksi internet pada smartphone Android yang terinstall aplikasi ini melalui klik pada sebuah button pada activity. Langkah pertama tentunya kita harus membuat sebuah boolean dan melakukan pengecekan pada Android apakah koneksi wifi/3g pada smartphone aktif dan dapat melakukan koneksi ke jaringan internet. Implementasi kode seperti ini:

private boolean checkInternetConnection(){
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if(cm.getActiveNetworkInfo() != null
&& cm.getActiveNetworkInfo().isAvailable()
&& cm.getActiveNetworkInfo().isConnected()){
return true;
} else {
Log.v("", "Internet Connection not Present");
return false;
}
}

Langkah selanjutnya adalah dengan menempatkan sebuah button pada activity dan memanggil boolean tersebut apakah true atau false.
Jika hasilnya true maka smartphone berada pada posisi dapat melakukan koneksi internet, jika false maka smartphone tidak memiliki koneksi internet aktif.

Button loading = (Button) findViewById(R.id.check);
loading.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(checkInternetConnection() == true){
Toast.makeText(getApplicationContext(),"Internet Active", Toast.LENGTH_SHORT).show();
} else {

Toast.makeText(getApplicationContext(),"No Internet Connection", Toast.LENGTH_SHORT).show();
}
}
});

Berikut adalah output dari kode tersebut.


koneksi dimatikan
koneksi dinyalakan

Berikut adalah full kode dari aplikasi ini.


package com.andikurnia.caknia;

import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class Splash extends Activity {

private boolean checkInternetConnection(){
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if(cm.getActiveNetworkInfo() != null
&& cm.getActiveNetworkInfo().isAvailable()
&& cm.getActiveNetworkInfo().isConnected()){
return true;
} else {
Log.v("", "Internet Connection not Present");
return false;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Button loading = (Button) findViewById(R.id.check);
loading.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(checkInternetConnection() == true){
Toast.makeText(getApplicationContext(),"Internet Active", Toast.LENGTH_SHORT).show();
} else {

Toast.makeText(getApplicationContext(),"No Internet Connection", Toast.LENGTH_SHORT).show();
}
}
});
}
}



1 komentar:

Dilarang melakukan komentar yang berbau SARA dan pornografi. :D