Android check network status (WiFi, 3G)

Verificarea existenţei conexiunii la internet este un element necesar de foarte multe ori. Pe cât de simplu este de realizat pe atât de multe probleme generează în cazul în care nu se ia în calcul şi această posibilitate.

Există două modalităţi de a conecta la internet un device având sistemul de operare Android (chiar 3 dacă se ia in calcul şi varianta de tethering), şi anume:  WiFi şi 3G.

Soluţia în cazul implementării Android este reprezentată de clasa ConnectivityManager care pune la dispoziţia dezvoltatorului posibilitatea de a verifica dacă device-ul este conectat sau este pe cale să se conecteze fie 3G , fie la WiFi.

Aşadar am realizat un mini-proiect în cadrul căruia am evidenţiat cele prezentate mai sus.  Enjoy! 🙂

Interfaţa grafică:

check_net.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:gravity="center"
 android:padding="20dip"
 android:background="@drawable/white">
 <Button android:id="@+id/btnCheckNetwork"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:background="@drawable/style_button"
 android:onClick="btnCheckNetwork_onClick"
 android:layout_marginBottom="30dip">
 </Button>
 <RelativeLayout android:id="@+id/layoutResult"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:visibility="gone"
 android:padding="10dip"
 android:gravity="center_vertical"
 android:background="@drawable/blue">
 <ImageView android:id="@+id/imgStatus"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_centerInParent="true"
 android:layout_alignParentLeft="true"
 android:layout_marginRight="20dip">
 </ImageView>
 <TextView android:id="@+id/txtStatus"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_centerInParent="true"
 android:layout_alignParentRight="true"
 android:gravity="left"
 android:textColor="@drawable/black">
 </TextView>
 </RelativeLayout>
</LinearLayout>

Codul java:

CheckNetworkStatus.java


package org.app.video;

import android.app.Activity;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class CheckNetworkStatus extends Activity
{
 RelativeLayout layoutResult;
 ImageView imgStatus;
 TextView txtStatus;

 public void onCreate(Bundle b)
 {
 super.onCreate(b);
 setContentView(R.layout.check_net);

 layoutResult = (RelativeLayout)findViewById(R.id.layoutResult);
 imgStatus = (ImageView)findViewById(R.id.imgStatus);
 txtStatus = (TextView)findViewById(R.id.txtStatus);

 }

 public boolean checkInternetConnection()
 {
 ConnectivityManager con=(ConnectivityManager)getSystemService(Activity.CONNECTIVITY_SERVICE);
 boolean wifi=con.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
 boolean internet=con.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
 if(wifi || internet)
 {
 return true;
 }
 else
 {
 return false;
 }
 }

 public void btnCheckNetwork_onClick(View v)
 {
 if(layoutResult.getVisibility()==View.GONE)
 {
 layoutResult.setVisibility(View.VISIBLE);
 if(checkInternetConnection())
 {
 imgStatus.setBackgroundResource(R.drawable.browser);
 txtStatus.setText("Yuhuuu! Avem net! :)");
 }
 else
 {
 imgStatus.setBackgroundResource(R.drawable.close_box_red);
 txtStatus.setText("Ooooo... nu avem net! :(");
 }
 }
 else
 {
 layoutResult.setVisibility(View.GONE);
 }
 }
}

Pe lăngă codul prezentat necesară este şi adăugarea în manifest a permisiunilor aferente:


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

În finalul acestui tutorial vreau să mulţumesc celor care au fost alături de blogul “Smartphone Platforms” în acest an care se grăbeşte să ne părăsească .

Lipsa de inspiraţie în realizarea acestui tutorial este cauzată de lipsa zăpezii , însă acest lucru nu mă împidică să vă doresc un Crăciun magic alături de cei dragi, cu multe cadouri, bucurii şi cât mai multe realizări. Fie ca bucuria şi linistea aduse de Sfintele Sărbători să vă însoţească pe tot parcursul anului ce va urma. La mulţi ani!

Semnează cu mult drag,

Magda

Advertisements
Android check network status (WiFi, 3G)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s