Autore Topic: [Wifi] Problema BroadcastReceiver  (Letto 434 volte)

Offline Andrea5

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
[Wifi] Problema BroadcastReceiver
« il: 25 Giugno 2015, 15:33:35 CEST »
0
Salve a tutti,
ho sviluppato un app che deve collegarsi in wifi al mio raspberry e deve fare alcune cose che non mi dilungo qui a spiegare perché non riguardano il problema( :-) ). Vi posto il codice che eseguo quando si deve effettuare la connessione WiFi, fatta da una classe apposita che gestisce la connessione:
Codice: [Seleziona]
WifiManager connector = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
connector.setWifiEnabled(true);
String currentSSID = connector.getConnectionInfo().getSSID();

WifiConfiguration config = new WifiConfiguration();
//setto l'SSID
config.SSID =  "\"SSIDwifi\"";                         
//setto la password
config.preSharedKey = "\"password\"";

int netId = connector.addNetwork(config);       
connector.enableNetwork(netId, true);                         
                         
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
applicationContext.registerReceiver(wifiStatusReceiver, intentFilter);



Dove applicationContext è il context dell'applicazione che passo alla mia classe che gestisce la connessione wifi.
Questo è il broadcast receiver che è dichiarato come variabile di classe esternamente al metodo che vi ho postato:
Codice: [Seleziona]

BroadcastReceiver wifiStatusReceiver = new BroadcastReceiver() {
               
                @Override
                public void onReceive(Context context, Intent intent) {
                        // TODO Auto-generated method stub
                       
                ConnectivityManager myConnManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo myNetworkInfo = myConnManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
                WifiManager myWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
                WifiInfo myWifiInfo = myWifiManager.getConnectionInfo();
       
               // se è connesso alla rete giusta faccio delle operazioni
                         if(myWifiInfo.getSSID().equals("IDwifi") && myNetworkInfo.isConnected()){
                   
                              //eseguo varie operazioni...
                          }
                }
        };


Debuggando un pò l'app ho scoperto che l'app crasha quando esegue nel broadcastReceiver l'inizializzazione del WifiManager.
Sto facendo qualcosa di sbagliato?
« Ultima modifica: 01 Luglio 2015, 12:25:41 CEST da Andrea5 »

Offline Andrea5

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
Re:[Wifi] Problema BroadcastReceiver
« Risposta #1 il: 01 Luglio 2015, 12:24:50 CEST »
0
Scusate il doppio post, ma ho scoperto che l'errore era a monte, ma non so come risolverlo.
In pratica la funzione "addNetwork" mi restituisce sempre -1 a netId, qualcuno sa da cosa può essere dovuto?