2

我想知道通过编码在黑莓中启用和禁用互联网连接的方法是什么。

编辑

protected void disableConnection() {
    activeConn = RadioInfo.getActiveWAFs();
    if(activeConn == 0){
        activeConn = RadioInfo.getEnabledWAFs();
    }

    mystore.setContents(new Integer(activeConn));
    mystore.commit();

    Radio.deactivateWAFs(activeConn);
    Dialog.alert("Off internet");
}

protected void enableConnection() {
    if(RadioInfo.getState() == RadioInfo.STATE_ON){
        Dialog.alert("Internet on already");
    }else if(mystore.getContents() != null){
        if(Radio.activateWAFs(Integer.parseInt(mystore.getContents().toString())) == true){
            Dialog.alert("On Internet");
        }else{
            Dialog.alert("Unable to on internet");
        }
    }else{
        Dialog.alert("Unable to on internet");
    }
}

这是我在打开和关闭按钮单击时调用的两种方法。

4

3 回答 3

3

您询问了互联网连接,所以我认为您感兴趣的不仅仅是 Wi-Fi 连接。通话Radio.deactivateWAFs(RadioInfo.WAF_WLAN);只会禁用 Wi-Fi。

更好的实现可能会首先检查哪些无线电处于打开状态,然后关闭这些无线电。当您想再次打开服务时,请重新激活您关闭的无线电。像这样的东西:

/** we record which radios are active */
private int _activeWAFs = 0;

private void getActiveWAFs() {
    _activeWAFs = RadioInfo.getActiveWAFs();
    if (_activeWAFs == 0) {
        _activeWAFs = RadioInfo.getEnabledWAFs();
    }
}

/** turn radios off if they're currently on */
private void disableAll() {
   getActiveWAFs();
   Radio.deactivateWAFs(_activeWAFs);
}

/** turn radios on, if we turned them off with disableAll() */
private void enableAll() {
   boolean success = Radio.activateWAFs(_activeWAFs) && (RadioInfo.getState() == RadioInfo.STATE_ON);
   if (!success) {
      // do something?
   }
}

此外,如果您想要关于这些操作的结果或收音机的外部更改的通知,您可以实现RadioStatusListener

public void networkStarted(int networkId, int service) {
   if (RadioInfo.getState() == RadioInfo.STATE_ON) {
      // network ready to use!
   }
}

而且,的,此调用将影响整个设备,而不仅仅是您的应用程序的互联网连接。

于 2012-06-27T00:05:57.603 回答
2

Radio.deactivateWAFS() 将停用所有无线连接或仅停用互联网连接或蓝牙连接。

示例:禁用 WiFi 连接。

Radio.deactivateWAFs(RadioInfo.WAF_WLAN);
于 2012-06-26T07:25:15.890 回答
2

试试这个 -

这将打开wifi-

Radio.activateWAFs(RadioInfo.WAF_WLAN);

这将关闭wifi-

Radio.deactivateWAFs(RadioInfo.WAF_WLAN);    
于 2012-06-26T09:42:59.177 回答