Autore Topic: Service o intent receiver?  (Letto 937 volte)

Offline Semola

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Nexus 6P
  • Sistema operativo:
    Ubuntu 13.04 on Dell XPS 14
Service o intent receiver?
« il: 10 Giugno 2013, 17:04:47 CEST »
0
Salve a tutti
è la prima volta che mi scontro con questa problematica e sono un pò confuso su quale via intraprendere
ho letto in giro per il forum di intent receiver, di service e di alarm manager ma non sò quale utilizzare

quello che voglio implementare è: periodicamente (ogni 6 o 10 ore per non intaccare troppo sulla batterie con richieste troppo frequenti) interrogare un DB remoto e vedere se ci sono dati da prelevare e farli visualizzare all'utente (stavo pensando di utilizzare le notifiche nella status bar ma questo verrà dopo XD )

come mi conviene proseguire?
grazie mille in anticipo ;)

Offline agenio

  • Utente junior
  • **
  • Post: 77
  • Respect: +11
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Moto G
  • Sistema operativo:
    Windows 8.1
Re:Service o intent receiver?
« Risposta #1 il: 10 Giugno 2013, 17:12:59 CEST »
0

Offline Semola

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Nexus 6P
  • Sistema operativo:
    Ubuntu 13.04 on Dell XPS 14
Re:Service o intent receiver?
« Risposta #2 il: 10 Giugno 2013, 17:27:28 CEST »
0
Usa GCM (google cloud message)

http://developer.android.com/google/gcm/index.html

Qual'è il vantaggio di utilizzare questo invece che un intent receiver o un service? (non ho ancora capito quale sarebbe opportuno usare..)

Inviato dal mio Nexus 4 con Tapatalk 2


Offline agenio

  • Utente junior
  • **
  • Post: 77
  • Respect: +11
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Moto G
  • Sistema operativo:
    Windows 8.1
Re:Service o intent receiver?
« Risposta #3 il: 10 Giugno 2013, 17:36:39 CEST »
0
che il controllo ogni tot minuti lo fai fare al server invece che al cellulare.

In poche parole funziona così:

- sul server gira un cron job che ogni x minuti fa un controllo se ci sono news per il tale device (telefono android)
- se ci sono news le comunica al device


tutto l'ambaradam funziona grazie ai server di google e alla perenne connessione che ogni device android ha con tali server.

Offline Semola

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Nexus 6P
  • Sistema operativo:
    Ubuntu 13.04 on Dell XPS 14
Re:Service o intent receiver?
« Risposta #4 il: 10 Giugno 2013, 18:28:04 CEST »
0
Allora credo che non posso usarlo perché i dati che deve controllare devono essere spediti al device che ha effettuato il login con un preciso account, non credo che possa essere gestita anche questa cosa dal server google o mi sbaglio?

Inviato dal mio Nexus 4 con Tapatalk 2


Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Service o intent receiver?
« Risposta #5 il: 10 Giugno 2013, 18:35:34 CEST »
0
Allora credo che non posso usarlo perché i dati che deve controllare devono essere spediti al device che ha effettuato il login con un preciso account, non credo che possa essere gestita anche questa cosa dal server google o mi sbaglio?

E' fatta esattamente per quella funzione.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Semola

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Nexus 6P
  • Sistema operativo:
    Ubuntu 13.04 on Dell XPS 14
Re:Service o intent receiver?
« Risposta #6 il: 10 Giugno 2013, 18:39:10 CEST »
0
E' fatta esattamente per quella funzione.

Però non un account Google, scusate forse non mi sono spiegato, cioè la mia app gestisce un sistema di account proprio
Quindi si dovrebbe controllare se ci sono dati per l'account specifico però sempre del db della mia app

Inviato dal mio Nexus 4 con Tapatalk 2


Offline agenio

  • Utente junior
  • **
  • Post: 77
  • Respect: +11
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Moto G
  • Sistema operativo:
    Windows 8.1
Re:Service o intent receiver?
« Risposta #7 il: 11 Giugno 2013, 08:52:29 CEST »
0
Allora forse io te lo spiegata molto velocemente (però in mia difesa devo dire che ti ho postato il link alla documentazione ufficiale:)) ... cmq il funzionamento è il seguente:

- a te sviluppatore serve un account google per abilitare la tua app ad utilizzare le API GCM.

Poi il tutto si sviluppa così:

- l'utente della tua app fa il login nella tua app (con le credenziali con cui si è registrato sul tuo server)
- la tua app a sto punto, dopo aver controllato che le credenziali sono giuste (qua devi fare tutto tu) registra il cellulare sul server google (in pratica si fa dare da google un id che servirà per identificare il tal device)
- quando ha l'id ... la tua app lo registra sul tuo server, associandolo all'utente (tieni a mente che un utente può avere x device)

-a sto punto fai girare un cron job sul tuo server che quando ci sono news per l'utente prende tutti gli id dei vari device a lui associati e comunica ai server google (credo tramite un oggetto JSON) che ci sono novità per l'utente

- google prende il messaggio e lo smista a tutti i device associati agli ID.
- la tua app intercetta la comunicazione proveniente da google e ci fa quello che vuole.



Offline Semola

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Nexus 6P
  • Sistema operativo:
    Ubuntu 13.04 on Dell XPS 14
Re:Service o intent receiver?
« Risposta #8 il: 11 Giugno 2013, 09:02:57 CEST »
0
quindi devo registrare io nel mio db del server gli id dei vari device android, leggo un pò allora e vedo se riesco a implementare questa cosa!

Post unito: 11 Giugno 2013, 09:34:35 CEST
no troppo sbattimento, io avevo anche già gli script php sul server che mi controllano se ci sono dati per la segnalazione al device e poi mi permettevano di eliminarla successivamente dal db.
qualche alternativa?
« Ultima modifica: 11 Giugno 2013, 09:34:35 CEST da Semola, Reason: Merged DoublePost »

Offline alexiscanny

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
Re:Service o intent receiver?
« Risposta #9 il: 24 Giugno 2013, 13:09:10 CEST »
0
quindi devo registrare io nel mio db del server gli id dei vari device android, leggo un pò allora e vedo se riesco a implementare questa cosa!

Post unito: 11 Giugno 2013, 09:34:35 CEST
no troppo sbattimento, io avevo anche già gli script php sul server che mi controllano se ci sono dati per la segnalazione al device e poi mi permettevano di eliminarla successivamente dal db.
qualche alternativa?

Ciao Semola, praticamente abbiamo all'incirca lo stesso problema (io ho creato questo thread:  http://www.anddev.it/index.php/topic,11352.0.html
Come potrai vedere nel thread io stavo pensando ad una connessione in multicast (nel mio caso) nel tuo penso ad una interrogazione da parte del client sul DB remoto...giusto?
Sei riuscito a trovare qualcosa o hai provato qualche soluzione?

Offline Semola

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Nexus 6P
  • Sistema operativo:
    Ubuntu 13.04 on Dell XPS 14
Re:Service o intent receiver?
« Risposta #10 il: 06 Luglio 2013, 17:55:39 CEST »
0
ciao
alla fine ho dovuto implementare GCM. non è molto difficile ho seguito questa guida
Android: integrare le notifiche push | Davide Ferrari
per quello che ho visto sembra funzionare anche se credo aprirò un altro topic più specifico su GCM perchè dovrei modificare questo script e nn ho capito come

Offline alexiscanny

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
Re:Service o intent receiver?
« Risposta #11 il: 07 Luglio 2013, 18:22:47 CEST »
0
ciao
alla fine ho dovuto implementare GCM. non è molto difficile ho seguito questa guida
Android: integrare le notifiche push | Davide Ferrari
per quello che ho visto sembra funzionare anche se credo aprirò un altro topic più specifico su GCM perchè dovrei modificare questo script e nn ho capito come
Ok semola..ti ringrazio per la risposta e per la guida  ;-)
Comunque se ti può essere utile io ho trovato come soluzione quella di controllare il file di log (hostname.log) in modo da vedere se sono state fatte operazioni o connessioni e in caso affermativo contattare l'utente...

Offline Semola

  • Utente junior
  • **
  • Post: 55
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Nexus 6P
  • Sistema operativo:
    Ubuntu 13.04 on Dell XPS 14
Re:Service o intent receiver?
« Risposta #12 il: 07 Luglio 2013, 19:42:33 CEST »
0
Ok semola..ti ringrazio per la risposta e per la guida  ;-)
Comunque se ti può essere utile io ho trovato come soluzione quella di controllare il file di log (hostname.log) in modo da vedere se sono state fatte operazioni o connessioni e in caso affermativo contattare l'utente...

Forse abbiamo esigenze diverse oppure non ho capito la tua tecnica

Inviato dal mio Nexus 4 con Tapatalk 2