IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Android Discussion :

Connexion a un réseau ad hoc, erreur stackOverFlowError


Sujet :

API standards et tierces Android

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 278
    Points : 63
    Points
    63
    Par défaut Connexion a un réseau ad hoc, erreur stackOverFlowError
    Bonjour a tous,
    je me permet de solliciter votre aide car je n'arrive pas à résoudre un probleme.
    Lorsque je lance mon appli j'ai une erreur de stackOverflowError, je ne sais pas pourquoi elle se produit. J'ai fais une classe Asynchrone car je pensais que mon erreur pouvais venir de cela. Il me semble avoir lu quelque part que la connexion ne pouvait pas se faire dans le thread principal. Mais en fait ce n'est pas le probleme. Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    public class fragment_listReseau extends Fragment {
        private View rootView;
        private ListView listReseau;
        private TextView te;
        private WifiManager wifi;
        private WifiScanReceiver receiverWifi;
        private List<ScanResult> wifiList;
        private ArrayList ada;
        @Override
        public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
            rootView = inflater.inflate(R.layout.layout_listreseau,container, false);
            listReseau = (ListView) rootView.findViewById(R.id.listReseau);
            receiverWifi = new WifiScanReceiver();
            inflater.getContext().registerReceiver(receiverWifi,new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
            wifi = (WifiManager)inflater.getContext().getSystemService(Context.WIFI_SERVICE);
            if(!wifi.isWifiEnabled()){
                wifi.setWifiEnabled(true);
            }
     
            ada = new ArrayList();
     
            listReseau.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
     
                    Object o = listReseau.getItemAtPosition(position).toString();
                    if(o.toString().equals("malabar")){
                        Toast.makeText(getActivity().getApplicationContext(),"toto est la",Toast.LENGTH_LONG).show();
                        /*WifiConfiguration w = new WifiConfiguration();
                        String mdp = "LLM_050810";
                        w.SSID = "\"malabar\"";
                        w.preSharedKey = mdp;*/
                        Connect c = new Connect();
                        c.execute();
                    }
                    else{
                        Toast.makeText(getActivity().getApplicationContext(),"toto est pas la:"+o.toString(),Toast.LENGTH_LONG).show();
                    }
                }
            });
     
            wifi.startScan();
            return rootView;
        }
     
        public WifiConfiguration WifiConfig(){
            WifiConfiguration wifiConfig = new WifiConfiguration();
            wifiConfig.SSID = "\"malabar\"";
            WifiConfig().preSharedKey = "\"****\"";
            wifiConfig.hiddenSSID = true;
            wifiConfig.priority = 40;
            wifiConfig.status = WifiConfiguration.Status.DISABLED;
            wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
            wifiConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
            wifiConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
            wifiConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
            wifiConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
            wifiConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
            wifiConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
            wifiConfig.allowedGroupCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
            wifiConfig.allowedGroupCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
     
            return wifiConfig;
        }
        public class Connect extends AsyncTask<Void,Void,Void>{
     
            @Override
            protected Void doInBackground(Void... params) {
                WifiConfiguration w = WifiConfig();
                int networkId = wifi.addNetwork(w);
                wifi.enableNetwork(networkId,true);
                return null;
            }
        }
        public class WifiScanReceiver extends BroadcastReceiver {
            @Override
            public void onReceive(Context context, Intent intent) {
                wifiList = wifi.getScanResults();
                //te.setText(wifiList.get(0).toString());
                for(int i = 0;i<wifiList.size();i++){
                    ada.add(wifiList.get(i).SSID);
                }
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity().getApplicationContext(),
                        android.R.layout.simple_list_item_1,ada);
                listReseau.setAdapter(adapter);
            }
        }
    }
    Quelques infos sur ll'erreur, la ligne 80 correspond a wifiConfig.preSharerdKey:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Caused by: java.lang.StackOverflowError
                at java.util.BitSet.<init>(BitSet.java:97)
                at java.util.BitSet.<init>(BitSet.java:77)
                at android.net.wifi.WifiConfiguration.<init>(WifiConfiguration.java:427)
                at com.cours.alex.tp_reseaux.fragment_listReseau.WifiConfig(fragment_listReseau.java:78)
                at com.cours.alex.tp_reseaux.fragment_listReseau.WifiConfig(fragment_listReseau.java:80)
    Merci, bonne soirée

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 278
    Points : 63
    Points
    63
    Par défaut
    J'ai trouvé mon problème, erreur de syntaxe avec mes nom de variable,
    j'ai écris WifiCOnfig().preSharedKey au lieu de wifiConfig.preShardeKey ...

    Par contre je ne me connecte toujours pas a mon réseau :/

Discussions similaires

  1. Réseau Ad-hoc et partage de connexion internet
    Par sami_c dans le forum Hardware
    Réponses: 9
    Dernier message: 21/05/2007, 15h12
  2. Connexion à un lecteur réseau au boot de la machine
    Par Enfa dans le forum Windows Serveur
    Réponses: 6
    Dernier message: 20/12/2006, 16h00
  3. Partage de connexion sur un réseau local
    Par zoom61 dans le forum Administration
    Réponses: 1
    Dernier message: 27/02/2006, 10h54
  4. Pb de connexion de lecteur réseau
    Par fbeon dans le forum Dépannage et Assistance
    Réponses: 3
    Dernier message: 03/11/2005, 10h55
  5. Comment partager ma connexion sur le réseau !???
    Par Kyti dans le forum Développement
    Réponses: 19
    Dernier message: 26/09/2005, 20h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo