Em praticamente toda aplicação
desenvolvida para o sistema Android necessitamos do acesso da internet. Nesta
dica rápida iremos montar uma função para verificar se o dispositivo está
conectado com algum tipo de conexão de internet, sendo a 3 G ou Wi-fi.
Para isto inicie uma aplicação padrão
e no arquivo “..res/layout/activity_main.xml”
insira um botão conforme mostra a tela a seguir. Ver Imagem 01.
Figura 01: Lay-Out Sugerido.
Abaixo o XML correspondente:
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="44dp"
android:text="Testar
Conexão!"
android:onClick="Conectar"/>
</RelativeLayout>
Como estamos trabalhando com
propriedades de conexão, deveremos adicionar no arquivo “Android.Manifest” algumas permissões de acesso, Segue abaixo para
maiores detalhes.
<uses-permission android:name="android.permission.INTERNET"/>
Permissão de acesso a internet, não importando o tipo.
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"
/>
Status da conexão Wi-Fi.
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"
/>
Status da conexão 3G.
Já em nossa atividade principal (“MainActivity.java”), no primeiro
momento, devemos adicionar algumas bibliotecas necessárias.
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import
android.widget.Toast;
A função será disparada no evento
“Click” do botão.
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void Conectar(View v)
{
Conectado(this);
}
public boolean Conectado(Context context)
{
try
{
ConnectivityManager cm = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected())
{
MensagemToast("Conexão 3G: "+cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected(),
MainActivity.this);
return true;
}
else if(cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected())
{
MensagemToast("Conexão Wi-fi: "+cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected(), MainActivity.this);
return true;
}
else
{
MensagemToast("Status de conexão Wifi: "+cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected(), MainActivity.this);
MensagemToast("Status de conexão 3G: "+cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected(),MainActivity.this);
return false;
}
}
catch (Exception e)
{
MensagemToast(e.getMessage(),
MainActivity.this);
return false;
}
}
public static void MensagemToast(String msg, Activity Atividade)
{
Toast.makeText(Atividade,
msg, Toast.LENGTH_SHORT).show();
}
}
Esta função que irá nos
retornar valores booleanos. Temos a possibilidade de testar conexão com Wi-Fi e
3G. Caso não encontre conexões também será disparado uma mensagem informativa.
Conclusão
Esta dica é para todos os
programadores que usam a internet como um recurso em seus aplicativos
desenvolvidos. Um Forte Abraço!
Nenhum comentário:
Postar um comentário