Подключитесь к сети Wi-Fi в Android, верните, если неверный пароль - PullRequest
5 голосов
/ 24 августа 2011

Я хотел бы создать приложение, которое позволит пользователю подключаться к сети Wi-Fi, однако у меня возникают проблемы с подключением к сети

Мой текущий код:

    WifiManager wifi = (WifiManager) getSystemService(WIFI_SERVICE);
    wifi.setWifiEnabled(true);
    WifiConfiguration wc = new WifiConfiguration();
    wifi.startScan();
    List<ScanResult> l=wifi.getScanResults();
    wc.SSID = l.get(NUMBER).SSID;
    post(wc.SSID);
    /*This is the bit that I think is failing, my network does not have these properties.. but I can't see how to get them from the Scan Result*/
    wc.preSharedKey  = "\"passw0rd123\"";
    wc.hiddenSSID = false;
    wc.status = WifiConfiguration.Status.ENABLED;        
    wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
    wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
    wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
    wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
    wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
    wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
    int res = wifi.addNetwork(wc);
    post("add Network returned " + res);
    boolean b = wifi.enableNetwork(res, true);        
    post("enableNetwork returned " + b);

Я думаю, что это связано с настройками (после моего комментария), которые не совпадают с настройками моей сети, но я не знаю, как получить эти настройки из ScanResult ..

EDIT: Я также хотел бы знать, правильно ли он подключен.

Ответы [ 2 ]

0 голосов
/ 24 августа 2011

Проверьте, включен ли WIFI в вашем устройстве и запомните в эмуляторе, вы не можете проверить его

Если WIFI отключен при нажатии на предупреждение, вы можете отобразить страницу настроек Wifi, как это

 WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);

           if ((wifi.isWifiEnabled() == true)) {

      Toast.makeText(RegisterActivity.this,"MOBILE Is Connected TO WI-FI!",
              }

              else {

                AlertDialog.Builder WIFIOFF = new Builder(MyTestglobe.this);
                WIFIOFF.setCancelable(false);
                WIFIOFF.setTitle("Connection Error");
                WIFIOFF.setMessage(" Please Enable Your WIFI/INTERNET !");
                WIFIOFF.setPositiveButton("Ok",
                new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog,int which) {
             startActivity(new Intent( Settings.ACTION_WIFI_SETTINGS));

                            }
                        });
                WIFIOFF.show();

            }

И дайте эти разрешения в вашем Manifest.xml

        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    
       <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
0 голосов
/ 24 августа 2011

убедитесь, что вы установили правильные разрешения в файле AndroidManifest.xml

...