BlackBerry手机上Java程序如何判断当前手机使用的运营商网络名称?网路制式?

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


你可能感兴趣的:(java,网络,手机,NetWork,中国移动,BlackBerry)