Connexion à un wifi ouvert sur Android

Connexion à un wifi ouvert sur Android - Java - Programmation

Marsh Posté le 05-03-2014 à 11:43:32    

Bonjour, j'essaie de créer une appli java pour se connecter à un wifi ouvert (le ssid est contenu dans le code).
Le problème est que quand j'installe l'app sur mon smartphone, il active le wifi mais ne fais que rechercher les réseaux disponibles, sans se connecter à OpenWrt.
Par contre que je m'y connecte une fois manuellement avant, l'appli marche.
Je ne vois pas pourquoi j'ai ce problème... Peut-être est-ce dû au fait que l'appli ne laisse pas le temps de trouver le réseau avant que le wifi ne soit totalement activé??
Merci pour votre aide :)
 

Code :
  1. package com.example.wificonnect;
  2. import java.util.List;
  3. import android.app.Activity;   
  4. import android.net.wifi.WifiConfiguration;
  5. import android.net.wifi.WifiManager;
  6. import android.os.Bundle;
  7. import android.util.Log;
  8. import android.content.Context;
  9. public class MainActivity extends Activity {
  10. @Override
  11. protected void onCreate(Bundle savedInstanceState) {
  12.  super.onCreate(savedInstanceState);
  13.  setContentView(R.layout.activity_main);
  14.  final String TAG = "MyActivity";
  15.  // Définition du réseau wifi auquel on se connecte
  16.  String networkSSID = "\"OpenWrt\"";
  17.         // Ajout à Android avec les paramètres du manager
  18.         WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
  19.        
  20.         // Configuration des paramètres de connexion
  21.         WifiConfiguration conf = new WifiConfiguration();
  22.         conf.SSID = networkSSID;               // SSID doit être entre quotes
  23.         conf.status = WifiConfiguration.Status.ENABLED;
  24.         conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
  25.         conf.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
  26.        
  27.         // Activation du wifi si pas encore activé
  28.         if(wifiManager.isWifiEnabled()) {
  29.             wifiManager.setWifiEnabled(false);
  30.         }
  31.         else {
  32.             wifiManager.setWifiEnabled(true);
  33.         }
  34.        
  35.         int networkId = -1;
  36.  if(wifiManager.getConfiguredNetworks() != null) {
  37.             for (WifiConfiguration configuredNetwork : wifiManager.getConfiguredNetworks()) {
  38.                 if (conf.SSID.equals(configuredNetwork.SSID)) {
  39.                     networkId = configuredNetwork.networkId;
  40.                     Log.i(TAG, "Network already registered : " + networkId);
  41.                 }
  42.             }
  43.         }
  44.        
  45.         if (networkId == -1) {
  46.             networkId = wifiManager.addNetwork(conf);
  47.             Log.i(TAG, "Network registered : " + networkId);
  48.         }
  49.         else {
  50.             wifiManager.updateNetwork(conf);
  51.         }
  52.      
  53.         wifiManager.enableNetwork(networkId, true);
  54.     }
  55. }

Reply

Marsh Posté le 05-03-2014 à 11:43:32   

Reply

Marsh Posté le 19-02-2015 à 16:19:22    

Je suis pas sur mais dans ton code tu fait set wifi enabled en false si il est pas activé alors qu il faudrait le laisser activé en ligne 34 :bounce:

Reply

Marsh Posté le 19-02-2015 à 16:20:34    

Je suis pas sur mais dans ton code tu fait set wifi enabled en false si il est pas activé alors qu il faudrait le laisser activé en ligne 34 :bounce:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed