Detect Data roaming in Android Application

You may want to know if the internet connection (data) is in roaming or not for the Android Application that you are working on. This can be done using ConnectivityManager class.


package com.code2care.networkdetection;
import android.content.Context;
public class CheckNetworkRoaming {
    // checkNetworkType detects what Network Connection type is active
    public String checkRoaming(Context context) {
        ConnectivityManager connManager = (ConnectivityManager) context
        NetworkInfo networkInfo = connManager.getActiveNetworkInfo();
        if (networkInfo == null || !networkInfo.isConnected()) {
            return "no Connection";
        } else {
            NetworkInfo networkType = connManager.getActiveNetworkInfo();
            return "" + networkType.isRoaming();

package com.example.networkdetection;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class NetworkMainActivity extends ActionBarActivity {
    protected void onCreate(Bundle savedInstanceState) {
        CheckNetworkRoaming ck = new CheckNetworkRoaming();
                "Data Roaming : " +ck.checkRoaming(this) ,
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(, menu);
        return true;
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == {
            return true;
        return super.onOptionsItemSelected(item);

Note: Remember to add user permission: android.permission.ACCESS_NETWORK_STATE to Android Manifest.

In order to test this functionality, you can turn data roaming on/off for your Android Emulator using DDMS tools.

Go to DDMS Perspective and goto Emulator Control tab and under Data dropdown select roaming to turn it on.

Copyright © Code2care 2024 | Privacy Policy | About Us | Contact Us | Sitemap