Code sample: Controlling radios

import net.rim.device.api.system.*;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;


public class NetworkSample extends UiApplication {
    public static void main(String[] args) 
    {
        NetworkSample app = new NetworkSample();
        app.enterEventDispatcher();
    }
    public NetworkSample() 
    {
        pushScreen(new RadioControlScreen());
    }
}


class RadioControlScreen extends MainScreen implements FieldChangeListener 
{

    boolean[] _intRadioOn = new boolean[3];
    ButtonField _btn3G, _btnCDMA, _btniDEN, _btnWiFi;

    public RadioControlScreen()
    {
        VerticalFieldManager vfm = new VerticalFieldManager(Field.FIELD_HCENTER);

        int wafs = RadioInfo.getSupportedWAFs();
        if ((wafs & RadioInfo.WAF_3GPP) != 0 )
        {
            _btn3G = new ButtonField("3G Radio");
            _btn3G.setChangeListener(this);
            vfm.add(_btn3G);
        }
        if ((wafs & RadioInfo.WAF_CDMA) != 0 )
        {
            _btnCDMA = new ButtonField("CDMA Radio");
            _btnCDMA.setChangeListener(this);
            vfm.add(_btnCDMA);
        }
        if ((wafs & RadioInfo.WAF_WLAN) != 0 )
        {
            _btnWiFi = new ButtonField("WiFi Radio");
            _btnWiFi.setChangeListener(this);
            vfm.add(_btnWiFi);
        }

        wafs = RadioInfo.getActiveWAFs();
        if ((wafs & RadioInfo.WAF_3GPP) != 0 )
        {
            _intRadioOn[0] = true;
            _btn3G.setLabel("3G Radio is on");
        }
        if ((wafs & RadioInfo.WAF_CDMA) != 0 )
        {
            _intRadioOn[1] = true;
            _btnCDMA.setLabel("CDMA Radio is on");
        }
        if ((wafs & RadioInfo.WAF_WLAN) != 0 )
        {
            _intRadioOn[2] = true;
            _btnWiFi.setLabel("WiFi Radio is on");
        }

        add(vfm);
        StandardTitleBar tb = new StandardTitleBar();
        tb.addTitle("Radio Control Demo");
        tb.addSignalIndicator();
        setTitleBar(tb);

    }


    public void fieldChanged(Field field, int context) 
    {
        if (field instanceof ButtonField)
        {
            if(field == _btn3G)
            {
                if (_intRadioOn[0])
                {
                    Radio.deactivateWAFs(RadioInfo.WAF_3GPP);
                    _btn3G.setLabel("3G Radio is off");
                    _intRadioOn[0] = false;
                } else
                {
                    Radio.activateWAFs(RadioInfo.WAF_3GPP);
                    _btn3G.setLabel("3G Radio is on");
                    _intRadioOn[0] = true;
                }
            } else if(field == _btnCDMA)
            {
                if (_intRadioOn[1])
                {
                    Radio.deactivateWAFs(RadioInfo.WAF_CDMA);
                    _btnCDMA.setLabel("CDMA Radio is off");
                    _intRadioOn[1] = false;
                } else
                {
                    Radio.activateWAFs(RadioInfo.WAF_CDMA);
                    _btnCDMA.setLabel("CDMA Radio is on");
                    _intRadioOn[1] = true;
                }
            } else if(field == _btnWiFi)
            {
                if (_intRadioOn[2])
                {
                    Radio.deactivateWAFs(RadioInfo.WAF_WLAN);
                    _btnWiFi.setLabel("WiFi Radio is off");
                    _intRadioOn[2] = false;
                } else
                {
                    Radio.activateWAFs(RadioInfo.WAF_WLAN);
                    _btnWiFi.setLabel("WiFi Radio is on");
                    _intRadioOn[2] = true;
                }
            }
        }


    }

}

Was this information helpful? Send us your comments.