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;
}
}
}
}
}
Previous topic: Code sample: Determining network transports with sufficient coverage
using the Network API