Autore Topic: Ricezione pacchetti UDP e smistamento a thread attivi  (Letto 775 volte)

Offline Singed

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
Ricezione pacchetti UDP e smistamento a thread attivi
« il: 25 Gennaio 2016, 13:15:35 CET »
0
Ciao a tutti,

Ho alcuni dubbi su come realizzare un particolare codice per per Android. Premetto che sono legato come logica alla programmazione a basso livello e magari qualche concetto non mi entra ancora. Ciò che voglio realizzare è un bottone e un indicatore di carica di una batteria. Ho un dispositivo che comunica via UDP è si comporta come AP. Io mi collego a esso e lui mi manda a intervalli regolari la carica della sua batteria, nel caso io gli invio un pacchetto lui mi risponde con un'altro pacchetto indicandomi che il pacchetto X è ricevuto. Al momento sto testando l'ambiente Android e ho capito il funzionamento di AsyncThread e ho realizzato un bottone per l'invio di un pacchetto UDP. Il mio problema parte con la ricezione dei pacchetti. Ho letto svariati post dove spiegavano come realizzare Thread in background per la ricezione dei pacchetti. Il mio problema è come unire questi pezzi.

Per il bottone vorrei creare una cosa di questo tipo: Invio del pacchetto -> Inizia uno sleep di 1 secondo -> controlla se il pacchetto è ricevuto -> se affermativo chiude task altrimenti ricomincia da punto uno

Per la logica non c'è problema, il problema che trovo è il passaggio del pacchetto ricevuto a questo task. Come è possibile realizzare ciò?

Se io strutturo tutto in modo ordinato come:
- Classe per il background server
- Classe di Button
- Activity

Poi dentro l'activity quando premo il bottone istanzio la classe Button con il valore del pacchetto da mandare. Però, come faccio a passare prima dal thread di background il dato alla mia activity e poi a smistarlo al mio task(dato che il task non esiste di default ma viene istanziato sul momento, come faccio a riferirmi a lui?)

Grazie mille!

Offline iClaude

  • Utente normale
  • ***
  • Post: 202
  • Respect: +13
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S5
  • Sistema operativo:
    Windows 10
Re:Ricezione pacchetti UDP e smistamento a thread attivi
« Risposta #1 il: 26 Gennaio 2016, 15:45:14 CET »
0
Il quesito è abbastanza incomprensibile.
Prova a riformularlo in modo più chiaro.
Magari posta un po' di codice,  ma solo quello su cui hai dubbi,  non tutta la classe. ..

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Ricezione pacchetti UDP e smistamento a thread attivi
« Risposta #2 il: 26 Gennaio 2016, 18:17:10 CET »
0
Se il tuo obiettivo è lavorare a basso livello non so cosa potresti combinare su android.
Se invece il tuo obiettivo è sapere in un telefono A la carica della batteria dei telefoni B e C, a prescindere da come viene implementato il tutto, allora ci sono strade più semplici

Offline martin.p

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
Re:Ricezione pacchetti UDP e smistamento a thread attivi
« Risposta #3 il: 19 Febbraio 2016, 00:12:38 CET »
0
Io avevo problemi analoghi di comunicazione tra thread che girano su un service in background e diverse activity. Ci sono modi per risolvere, ma uno che io ho trovato particolarmente efficace è l'utilizzo della libreria Eventbus di Greenrobot. La puoi agganciare da Maven Central tramite Gradle (se usi Android Studio) ed è piuttosto ben documentata e facile da usare. Permette di trasmettere con facilità pacchetti di informazioni attraverso threads diversi. Vedi qui https://github.com/greenrobot/EventBus . Spero ti sia d'aiuto.

Inviato dal mio Nexus 5 utilizzando Tapatalk


Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Ricezione pacchetti UDP e smistamento a thread attivi
« Risposta #4 il: 19 Febbraio 2016, 08:18:17 CET »
0
Al di fuori dei pacchetti eventi bus serve per creare un bus dove tutti possono sotto scriversi e catchare eventi oppure e metterli.
Se hai 2 activity 4 fragment 1 service e 1 broadcast receiver allora l'idea di usare la libreria non è male