Autore Topic: BroadcastReceiver e ritorno di dati  (Letto 382 volte)

Offline lele71

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy S3, Asus TF300T
  • Sistema operativo:
    windows7, android (AIDE)
BroadcastReceiver e ritorno di dati
« il: 25 Gennaio 2013, 11:01:19 CET »
0
Premessa probabilmente sono incapace e me ne vergogno .... ma tant'è e quindi posto la mia domanda ....
Dunque ho un'applicazione così strutturata:

public class Main extends Activity {
........................
......
Wireless la_rete = new Wireless(this,this);
.....
.....
la_rete.scansione();
........
}

in un altro file .java

public class wireless {
.........
//Costruttore
public wireless(Context c, Activity activity) {
this.activity = activity;
mynet = (WifiManager)c.getSystemService(Context.WIFI_SERVI CE);

gestEventi FineScansione = new gestEventi(mynet, activity);

c.registerReceiver(FineScansione, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_AC TION));
} // Fine del costruttore

metodo 1

metodo 2

public void scansione() {
mynet.startScan();
} // Fine metodo scansione()
}// Fine Classe

in altro file .java

public class gestEventi extends BroadcastReceiver {

.....................
.....................

//Costruttore
public gestEventi(WifiManager rete, Activity activity) {
mywifi = rete;
this.activity = activity;
}// Fine Costruttore

public void onReceive(Context context, Intent intent) {
List <ScanResult> mywifiscan;
mywifiscan = mywifi.getScanResults();

// TEMPORANEAO PER TEST
for(int i = 0 ; i < mywifiscan . size(); i++){
TextView testo = (TextView) activity.findViewById(R.id.txt1);
testo.setText(testo.getText() + "\n" + mywifiscan.get(i).toString() );
} // FINE TEMPORANEO
}// Fine OnReceive()

}// Fine Classe


Bene fino a qui tutto funziona finita la scansione mi trovo la TextView compilata con l'elenco delle reti trovate (su tutti i terminali possibili ma non su Galaxy S3 ..... ma questa è un'altra storia  )

Quello che a me serve sarebbe una cosa del genere:

in Main al posto di:
la_rete.scansione();
vorrei qualche cosa del tipo:
List <ScanResult> lista_reti = la_rete.scansione();
e qui l'esecuzione dell'Activity DEVE FERMARSI fino a che non ottengo il risultato che da gestEventi deve passare a Wireless e quindi a Main ........

Io non ho la più pallida idea di come fare molto probabilmente mi manca qualche base fondamentale ma io ho cercato su tutti i libri e su tutti i siti che ho trovato, ma non ho trovato la soluzione.

Se qualcuno avesse la gentilezza di postare una soluzione "for very very dummies" gli sarei eternamente grato .

Grazie a tutti per le eventuali risposte.