Check GPS, Internet and Wifi availability Status in android
Hi guys, here is simple tutorial for frequently used functions as Internet GPS and WiFi availability in android.
here we created separate utility class and just passing context to the constructor and calling desire functions.
Thats end, simple :)
have look on code example.
DialogUtility.java
package
com.example.availabilitychecker;
import
android.app.AlertDialog;
import
android.content.Context;
import
android.content.DialogInterface;
import
android.content.Intent;
import
android.location.LocationManager;
import
android.net.ConnectivityManager;
import
android.net.NetworkInfo;
import
android.provider.Settings;
public class DialogUtility {
Context
context;
public DialogUtility(Context
context) {
this.context = context;
}
/**
* Function to show settings alert dialog On
pressing Settings button will
* lauch Settings Options
* */
public void
showGPSSettingsAlert() {
AlertDialog.Builder
alertDialog = new AlertDialog.Builder(context);
// Setting Dialog
Title
alertDialog.setTitle("GPS is
settings");
// Setting Dialog
Message
alertDialog
.setMessage("GPS is not
enabled. Do you want to go to settings menu?");
// On pressing
Settings button
alertDialog.setPositiveButton("Settings",
new DialogInterface.OnClickListener()
{
public void
onClick(DialogInterface dialog, int which) {
Intent
intent = new Intent(
Settings.ACTION_LOCATION_SOURCE_SETTINGS);
context.startActivity(intent);
}
});
// on pressing
cancel button
alertDialog.setNegativeButton("Cancel",
new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
// Showing Alert
Message
alertDialog.show();
}
/**
* Display a dialog that user has no internet
connection lauch Settings
* Options
* */
public void
showInternetSettingsAlert() {
AlertDialog.Builder
alertDialog = new AlertDialog.Builder(context);
// Setting Dialog
Title
alertDialog.setTitle("Internet
Settings");
// Setting Dialog
Message
alertDialog
.setMessage("Internet is
not enabled. Do you want to go to settings menu?");
// On pressing
Settings button
alertDialog.setPositiveButton("Settings",
new DialogInterface.OnClickListener()
{
public void
onClick(DialogInterface dialog, int which) {
Intent
intent = new Intent(
Settings.ACTION_WIRELESS_SETTINGS);
context.startActivity(intent);
}
});
// on pressing
cancel button
alertDialog.setNegativeButton("Cancel",
new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
// Showing Alert
Message
alertDialog.show();
}
/**
* Display a dialog that user has no Wifi
connection lauch Settings Options
* */
public void
showBluetoothSettingsAlert() {
AlertDialog.Builder
alertDialog = new AlertDialog.Builder(context);
// Setting Dialog
Title
alertDialog.setTitle("Wifi
Settings");
// Setting Dialog
Message
alertDialog
.setMessage("Wifi is not
enabled. Do you want to go to settings menu?");
// On pressing
Settings button
alertDialog.setPositiveButton("Settings",
new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int which) {
Intent
intent = new Intent(
Settings.ACTION_WIFI_SETTINGS);
context.startActivity(intent);
}
});
// on pressing
cancel button
alertDialog.setNegativeButton("Cancel",
new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
// Showing Alert
Message
alertDialog.show();
}
/**
* Check Internet Availability and return true
or false Require permitions
* <uses-permission
android:name="android.permission.ACCESS_WIFI_STATE" />
* <uses-permission
android:name="android.permission.INTERNET" />
* <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"
* />
*
* @param context
* @return
*/
public boolean
isInternetConnected() {
ConnectivityManager
cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo
netinfo = cm.getActiveNetworkInfo();
if (netinfo != null &&
netinfo.isConnectedOrConnecting()) {
android.net.NetworkInfo
wifi = cm
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
android.net.NetworkInfo
mobile = cm
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if ((mobile != null &&
mobile.isConnectedOrConnecting())
||
(wifi != null && wifi.isConnectedOrConnecting()))
return true;
else
return false;
}
else
return false;
}
public boolean isWiFiConnected() {
// Create object
for ConnectivityManager class which returns network
// related info
ConnectivityManager
connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
// If connectivity
object is not null
if (connectivity != null) {
// Get network info
- WIFI internet access
NetworkInfo
info = connectivity
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (info != null) {
// Look for whether
device is currently connected to WIFI
// network
if (info.isConnected())
{
return true;
}
}
}
return false;
}
/**
* requires <uses-permission
*
android:name="android.permission.ACCESS_FINE_LOCATION" />
*
* @param context
* @return
*/
public boolean isGPSConnected() {
LocationManager
service = (LocationManager) context
.getSystemService(context.LOCATION_SERVICE);
boolean status = service
.isProviderEnabled(LocationManager.GPS_PROVIDER);
return status;
}
}
and we use this class functions as in our MainActivity.java file
package
com.example.availabilitychecker;
import
android.app.Activity;
import
android.content.Context;
import android.os.Bundle;
import android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.Toast;
public class MainActivity extends Activity {
Context
context;
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = MainActivity.this;
Button
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
DialogUtility
dialogUtility = new DialogUtility(context);
if
(!dialogUtility.isGPSConnected())
dialogUtility.showGPSSettingsAlert();
else
Toast.makeText(context, "GPS
Available", Toast.LENGTH_SHORT)
.show();
}
});
Button
button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
DialogUtility
dialogUtility = new DialogUtility(context);
if
(!dialogUtility.isInternetConnected())
dialogUtility.showInternetSettingsAlert();
else
Toast.makeText(context, "Internet
Available",
Toast.LENGTH_SHORT).show();
}
});
Button
button3 = (Button) findViewById(R.id.button3);
button3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
DialogUtility
dialogUtility = new DialogUtility(context);
if
(!dialogUtility.isWiFiConnected())
dialogUtility.showBluetoothSettingsAlert();
else
Toast.makeText(context, "Wifi
Available",
Toast.LENGTH_SHORT).show();
}
});
}
}
activity xml file as
<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" >
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/button1"
android:text="Check Internet Availability" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/button2"
android:text="Check Wifi Availability" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:src="@drawable/images" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/imageView1"
android:text="Check GPS Availability " />
</RelativeLayout>
and we use following permissions in our app
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"
/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
/>
and here is complete complete menifest.xml file as
<?xml version="1.0"
encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.availabilitychecker"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"
/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.availabilitychecker.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN"
/>
<category android:name="android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
</application>
</manifest>
thats end, simple :)
and Here you can download complete working example.
Happpppppy Codddddding :)
No comments:
Post a Comment