你可以使用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