Autore Topic: Monitorare lo stato della connessione internet  (Letto 406 volte)

Offline Alhazred

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Asus Zenfone 2 Laser ZE550KL
  • Sistema operativo:
    Windows 10 Home 64bit
Monitorare lo stato della connessione internet
« il: 16 Agosto 2017, 21:50:35 CEST »
0
Salve a tutti.
Non scrivevo più un'app dai tempi di Jelly Bean, adesso mi trovo a scriverne un'altra ed è cambiato mezzo mondo.

Mi trovo totalmente disorientato su come debba fare a monitorare lo stato della connessione internet, in pratica vorrei essere avvisato quando ci si connette o disconnette, non mi interessa sapere se si è connessi tramite WiFi o rete cellulare.
In passato si usava dichiarare nel manifest un receiver con intent-filter
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
ma ora leggo sulla documentazione che se come target si ha una API Level 24 o superiore, tale receiver viene ignorato.

Sempre documentandomi, si dice che ora si dovrebbe usare JobScheduler, ma non nel mio caso, perché come API Level minimo ho 19 e JobScheduler si usa da 21 in su (non tanto vero in realtà, perché ho provato ad impostarlo e cambiare API Level minimo a 21 e comunque Android Studio mi dice che non va bene).
Usando una API Level 19 come minimo, sembra che si debba usare GCM Network Manager, ma da qualche parte ho letto che è già deprecato e si parla di Firebase...

Non ci sto capendo nulla, qualcuno è in grado di chiarirmi le idee a riguardo?
Devo essere informato e prendere decisioni a seconda che la connessione a internet ci sia oppure no.
Target API Level 26
Min API Level 19

Che cosa dovrei fare? :'(

Offline berpao

  • Utente junior
  • **
  • Post: 116
  • Respect: +9
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Play Store ID:
    Paolo Bersan
Re:Monitorare lo stato della connessione internet
« Risposta #1 il: 17 Agosto 2017, 09:15:37 CEST »
0
Ciao, ho controllato la documentazione qui https://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html ed è vero quello che hai scritto riguardo al manifest, ma alla fine dice "Apps will still receive CONNECTIVITY_ACTION broadcasts if they register their BroadcastReceiver with Context.registerReceiver() and that context is still valid."... da quello che capisco per poterlo usare, oltre a dichiararlo nel manifest, devi esplicitamente registrarlo via codice. Prova a vedere se funziona.
Ciao
P