salve a tutti!
Ho il problema come da soggetto: sto lavorando con le connessioni NFC della nokia, e devo far comunicare 2 dispositivi tra di loro tramite le librerie p2p. Poichè i due dispositivi dovrebbero aprire la connessione uno in modalità "target" e uno in "initiator", questi si dovrebbero trovare l'uno a cercare l'altro nello stesso momento. Ho quindi pensato di creare una classe che grazie a un thread prova ad aprire la connessione per un certo tempo.
questa è la mia classe Timeout
in questo modo dopo 20 secondi dall'avvio del thread la variabile timeout dovrebbe diventare true, variabile che verrà controllata in un ciclo while per l'apertura della connessione NFC. Il problema però è che non funzionacodice:public class Timeout implements Runnable{ private static boolean timeout; public Timeout(){ timeout=false; } public void run() { aspetta(); } public boolean getTimeout(){ return timeout; } public synchronized void aspetta(){ try { wait(20000); timeout=true; } catch (InterruptedException e) { timeout=true; } } }questo è il codice per l'apertura della connessione
codice:Timeout t = new Timeout(); Thread thread = new Thread(t); thread.start(); while (!t.getTimeout() || !ricevuto){ try{ //prova a connettersi a un altro apparecchio; conn = (NFCIPConnection)Connector.open(INITIATOR_URL); //manda il messaggio conn.send(message.getBytes()); //riceve risposta byte[] data = conn.receive(); if (data!=null){ response = new String(data); } ricevuto=true; } catch(Exception e){ e.printStackTrace(); }

questo è il codice per l'apertura della connessione
Rispondi quotando