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 :
- package com.example.wificonnect;
- import java.util.List;
- import android.app.Activity;
- import android.net.wifi.WifiConfiguration;
- import android.net.wifi.WifiManager;
- import android.os.Bundle;
- import android.util.Log;
- import android.content.Context;
- public class MainActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- final String TAG = "MyActivity";
- // Définition du réseau wifi auquel on se connecte
- String networkSSID = "\"OpenWrt\"";
- // Ajout à Android avec les paramètres du manager
- WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
-
- // Configuration des paramètres de connexion
- WifiConfiguration conf = new WifiConfiguration();
- conf.SSID = networkSSID; // SSID doit être entre quotes
- conf.status = WifiConfiguration.Status.ENABLED;
- conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
- conf.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
-
- // Activation du wifi si pas encore activé
- if(wifiManager.isWifiEnabled()) {
- wifiManager.setWifiEnabled(false);
- }
- else {
- wifiManager.setWifiEnabled(true);
- }
-
- int networkId = -1;
- if(wifiManager.getConfiguredNetworks() != null) {
- for (WifiConfiguration configuredNetwork : wifiManager.getConfiguredNetworks()) {
- if (conf.SSID.equals(configuredNetwork.SSID)) {
- networkId = configuredNetwork.networkId;
- Log.i(TAG, "Network already registered : " + networkId);
- }
- }
- }
-
- if (networkId == -1) {
- networkId = wifiManager.addNetwork(conf);
- Log.i(TAG, "Network registered : " + networkId);
- }
- else {
- wifiManager.updateNetwork(conf);
- }
-
- wifiManager.enableNetwork(networkId, true);
- }
- }
|