Community » Forums » Android - Examples > Using Connectivity API
November 18, 2009 2:24:01 PM PST (41 weeks ago). Seen 2,617 times.
Photo Marko Gargenta
Marakana, Inc.
Member since Jan 19, 2007
Location: San Francisco
Posts: 95
Connectivity API is supported via ConnectivityManager. As always, you get this manager fro the system via getSystemService(). Once you have the manager, you can get info for various networks, namely WiFi and mobile. In this example, we simply print this info out to a TextView.


ConnectivityDemo.java:
Code:

package com.marakana;

import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.widget.TextView;

public class ConnectivityDemo extends Activity {
ConnectivityManager connectivity;
NetworkInfo wifiInfo, mobileInfo;

TextView textStatus;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// Get UI
textStatus = (TextView) findViewById(R.id.textStatus);

// Setup Connectivity
connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
wifiInfo = connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
mobileInfo = connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

// print info
textStatus.append("\n\n" + wifiInfo.toString());
textStatus.append("\n\n" + mobileInfo.toString());
}
}


The layout for this example is trivial - it contains one TextView for the output from our activity.

/res/layout/main.xml:
Code:

<?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">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/textStatus"
android:text="Connectivity Demo" />
</LinearLayout>


Finally, don't forget to add the proper permission declarations to your AndroidManifest.xml file:
AndroidManifest.xml:
Code:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.marakana" android:versionCode="1" android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:theme="@android:style/Theme.Light">
<activity android:name=".ConnectivityDemo" 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>
<uses-sdk android:minSdkVersion="3" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
</manifest>


The final output should look like this:


Source Code:
http://marakana.com/static/tutorials/ConnectivityDemo.zip

Edited one time. Last edit by Marko Gargenta on Jun 15, 2010 at 12:36:03 AM (about 11 weeks ago).