2

I am working on a messaging app, is there anyways or any API to identify the service provider name in android , also can anyone help me out how to programmatically check if the application is using WIFI connection or 3G service ? Please help me.

Taa
  • 45
  • 5

3 Answers3

1

By this snippet block of code you can check all type networks in your device:

public boolean isNetworkAvailable() {
        ConnectivityManager connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity == null) {
            return false;
        } else {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null) {
                for (int i = 0; i < info.length; i++) {
                    if (info[i].getState() == NetworkInfo.State.CONNECTED) {
                        return true;
                    }
                }
            }
        }
        return false;
    }

and then test your network by this:

if (isNetworkAvailable()) {
                    //Network availabe...
                } else {
                    Toast alrtMsg = Toast.makeText(this, "No network connection available !!!", Toast.LENGTH_LONG);
                    alrtMsg.setGravity(Gravity.CENTER, 0, 0);
                    alrtMsg.show();
                }
1

This is a realy nice class to get the current connexion type and to be alert via listener of connexion update:

package com.android.aft.AFCoreTools;

import java.util.ArrayList;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;


public class AFNetworkMonitoring {

    public enum NetworkMode {
        NotConnected,
        ConnectedToWifi,
        ConnectedTo3G,
    };

    public interface NetworkMonitoringInterface {
        public void onNetworkUpdate(NetworkMode mode);
    }

    // Network connection
    public NetworkMode mode = NetworkMode.NotConnected;

    // Connection listener
    private BroadcastReceiver mConnReceiver;

    // Listeners
    private ArrayList<NetworkMonitoringInterface> mListeners;

    // Context
    private Context mContext;

    public AFNetworkMonitoring(Context ctx) {
        this(ctx, null);
    }

    public AFNetworkMonitoring(Context ctx, NetworkMonitoringInterface listener) {
        mContext = ctx;
        addListener(listener);

        // Create network state update
        mConnReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                updateNetworkConnectionStatus();
            }
        };
        mContext.registerReceiver(mConnReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
    }

    protected void updateNetworkConnectionStatus() {
        ConnectivityManager conMgr = (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = conMgr.getActiveNetworkInfo();
        if (info == null || !info.isConnected() || !info.isAvailable()) {
            DebugTools.d("Lost connection detected");
            mode = NetworkMode.NotConnected;
            notifyListener();
            return;
        }

        NetworkInfo infoWifi = conMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        if (infoWifi.isConnected() || infoWifi.isAvailable()) {
            DebugTools.d("On connection wifi detected");
            mode = NetworkMode.ConnectedToWifi;
            notifyListener();
            return;
        }

        DebugTools.d("On connection 3G detected");
        mode = NetworkMode.ConnectedTo3G;
        notifyListener();
    }

    protected void notifyListener() {
        if (mListeners == null)
            return ;

        new AsyncTaskWrapper<Void, Void, Void>() {
            @Override
            protected Void doInBackground(Void... params) {
                // Nothing to do
                return null;
            }
            @Override
            protected void onPostExecute(Void result) {
                for (NetworkMonitoringInterface l: mListeners)
                    l.onNetworkUpdate(mode);
            };
        }.executeParallel();
    }

    public void addListener(NetworkMonitoringInterface listener) {
        if (listener == null)
            return ;

        if (mListeners == null)
            mListeners = new ArrayList<AFNetworkMonitoring.NetworkMonitoringInterface>();

        mListeners.add(listener);
    }

    public void removeListener(NetworkMonitoringInterface listener) {
        if (mListeners == null)
            return ;
        mListeners.remove(listener);
    }

}
Fabecc
  • 160
  • 4
0

LocationManager service = (LocationManager)getSystemService(getActivity().LOCATION_SERVICE);

boolean GPS_PROVIDER = service.isProviderEnabled(LocationManager.GPS_PROVIDER); boolean NETWORK_PROVIDER = service.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

MSr
  • 288
  • 1
  • 6
  • 14