コード例 #1
0
ファイル: WifiAdmin.java プロジェクト: theric/myAPP
  /**
   * Configure a network, and connect to it.
   *
   * @param wifiMgr
   * @param scanResult
   * @param password Password for secure network or is ignored.
   * @return
   */
  public boolean connectToNewNetwork(
      ScanResult scanResult, String password, int numOpenNetworksKept) {
    final String security = ConfigSec.getScanResultSecurity(scanResult);

    if (ConfigSec.isOpenNetwork(security)) {
      checkForExcessOpenNetworkAndSave(numOpenNetworksKept);
    }

    WifiConfiguration config = new WifiConfiguration();
    config.SSID = convertToQuotedString(scanResult.SSID);
    config.BSSID = scanResult.BSSID;
    ConfigSec.setupSecurity(config, security, password);

    int id = -1;
    try {
      id = mWifiManager.addNetwork(config);
    } catch (NullPointerException e) {
      Log.e(TAG, "Weird!! Really!! What's wrong??", e);
    }
    if (id == -1) {
      return false;
    }

    if (!mWifiManager.saveConfiguration()) {
      return false;
    }

    config = getWifiConfiguration(config, security);
    if (config == null) {
      return false;
    }

    return connectToConfiguredNetwork(config, true);
  }
コード例 #2
0
ファイル: WifiAdmin.java プロジェクト: theric/myAPP
 /**
  * Change the password of an existing configured network and connect to it
  *
  * @param wifiMgr
  * @param config
  * @param newPassword
  * @return
  */
 public boolean changePasswordAndConnect(
     WifiConfiguration config, String newPassword, int numOpenNetworksKept) {
   ConfigSec.setupSecurity(config, ConfigSec.getWifiConfigurationSecurity(config), newPassword);
   final int networkId = mWifiManager.updateNetwork(config);
   if (networkId == -1) {
     // Update failed.
     return false;
   }
   // Force the change to apply.
   mWifiManager.disconnect();
   return connectToConfiguredNetwork(config, true);
 }