你可以使用RadioInfo API了解相关信息,拿到的信息如下:
Network Name | Network | |
9650 + China Telecom | 乱码((手机中文或者英文界面都是乱码, 电信工作不给力啊) | CDMA, 3GPP GPRS WiFi |
9900 + China Unicom | China Unicom(手机英文界面) 中国联通 | 3GPP GPRS WiFi |
9788 + China Mobile | CHINA MOBILE(手机英文界面) 中国移动 | 3GPP GPRS WiFi |
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);
LabelField label = new LabelField("Supported networks are: ");
int wafs = RadioInfo.getSupportedWAFs();
if ((wafs & RadioInfo.WAF_3GPP) != 0 )
{
label.setText(label.getText() + "3GPP;");
_btn3G = new ButtonField("3G Radio");
_btn3G.setChangeListener(this);
vfm.add(_btn3G);
}
if ((wafs & RadioInfo.WAF_CDMA) != 0 )
{
label.setText(label.getText() + "CDMA;");
_btnCDMA = new ButtonField("CDMA Radio");
_btnCDMA.setChangeListener(this);
vfm.add(_btnCDMA);
}
if ((wafs & RadioInfo.WAF_WLAN) != 0 )
{
label.setText(label.getText() + "WiFi;");
_btnWiFi = new ButtonField("WiFi Radio");
_btnWiFi.setChangeListener(this);
vfm.add(_btnWiFi);
}
if ((wafs & RadioInfo.NETWORK_GPRS) != 0 )
{
label.setText(label.getText() + "GPRS;");
}
if ((wafs & RadioInfo.NETWORK_SERVICE_EVDO_REV0) != 0 )
{
label.setText(label.getText() + "EVDO;");
}
vfm.add(new LabelField("Your carrier name is " + RadioInfo.getCurrentNetworkName()));
if ((wafs & RadioInfo.WAF_CDMA) != 0 ) {
vfm.add(new LabelField("You are using China Telecom's CDMA network if you are in China, it support WAP 2.0"));
}
if (RadioInfo.getCurrentNetworkName().equalsIgnoreCase("CHINA MOBILE") ) {
vfm.add(new LabelField("You are using China Mobile's network"));
}
if (RadioInfo.getCurrentNetworkName().equalsIgnoreCase("CHINA UNICOM") ) {
vfm.add(new LabelField("You are using China Unicom's network"));
}
if (RadioInfo.getCurrentNetworkName().equalsIgnoreCase("中国移动") ) {
vfm.add(new LabelField("You are using China Mobile中国移动 's network"));
}
if (RadioInfo.getCurrentNetworkName().equalsIgnoreCase("中国联通") ) {
vfm.add(new LabelField("You are using China Unicom 中国联通's network"));
}
vfm.add(label);
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;
}
}
}
}
}
参考:
google:BlackBerry RadioInfo sample
Code sample: Controlling radios