non ricordo se nel tutorial stampato o in quello video, sono quasi certo che Erel affermi che il messaggio FCM sia in grado di avviare l'app (vado a controllare di nuovo).
Ho appena effettuato una prova sul P8. Anziché far partire una notifica, dall'interno di fm_MessageArrived lancio la Main:
StartActiity(Main).
Quindi sono uscito dall'app tramite "Escape", app che quindi è in background, inviato un messaggio FCM e la Main viene attivata correttamente. Questo non avviene (non ho provato ma oramai ne sono certo) nel caso in cui la tua app sia stata definitivamente chiusa, dalle impostazioni.
A me purtroppo non è cosi, se metto l'app in background passando ad altre attività allo ok riceve, ma non ho necessità di push perché il socket rimane connesso, il problema nasce quando chiudi l'app con il dito o la sposti nel cestino, il P8 non riceve più niente, ho provato anche con un altro P8 di un amico, stesso problema… Nell specifico il P8 è questo: Manufacturer HUAWEI; Model ALE-L21; Product ALE-L21; SdkVersion 23 (estrappolato con Phone…)
Riguardo il does not need to run è chiaro, lo abbiamo capito, l'app è chiusa ma riceve la push, e quindi nel servizio in cui arriva la push puoi fare quello che vuoi, o almeno dovresti poterlo fare visto che se tento di fare uno startactivity o uno startservice fallisce….
Io non ho fatto altro che creare un progetto praticamente uguale a quello pubblicato da Erel ed usarlo in modalità sia debug che release (mi riferisco sempre al P8 Lite 2017).
Se l'app è in foreground o in background, riceve sempre la notifica; se è "definitivamente chiusa", ovvero l'ho chiusa io tramite le impostazioni del dispositivo, allora non riceve e tantomeno "parte" (l'app stessa).
Se l'app è in foreground o in background, riceve sempre la notifica; se è "definitivamente chiusa", ovvero l'ho chiusa io tramite le impostazioni del dispositivo, allora non riceve e tantomeno "parte" (l'app stessa).
Sarebbe anche interessante scoprire se sia possibile conoscere quali servizi siano attivi e, soprattutto, a quali app siano legati.
In questo modo si potrebbe anche capire il funzionamento di Whatsapp e delle altre app che riescono a gestire queste notifiche in questo modo.
Dim m As Map = CreateMap("to": $"/topics/${Topic}"$)
Dim data As Map = CreateMap("title": Title, "body": Body)
m.Put("data": data)
Dim jg As JSONGenerator
jg.Initialize(m)
dove la mettiamo la priorità?
In "data" vengono annidate title e body, ma li invece:
Non ho B4J e quindi non posso provarlo, ma dovrebbe essere:
B4X:
Dim m As Map = CreateMap("to": $"/topics/${Topic}"$)
Dim data As Map = CreateMap("title": Title, "body": Body)
m.Put("data": data)
Dim pr As Map = CreateMap("priority": "high")
m.Put("android": pr)
Dim jg As JSONGenerator
jg.Initialize(m)
Io con il p8 lite, una volta protetta l'app, tutto funziona bene... la push arriva regolarmente anche dopo aver spento e riacceso il telefono senza far ripartire la procedura... e arrivano anche quelle spedite mentre il telefono era spento!!! e trasmetto le push indistintamente da una mia piattaforma web php mysql che da altro device, raramente dalla consolle Firebase.
nessuna installazione particolare se non il tutorial presente sul forum... le indicazioni del Grande Erel... e degli altri membri... in particolare i post relativi alla questione di Kmatle
Uso sdk Platform 23 - google play services 49 - google repository 58 - android support repository 47 e al momento b4a 8.0 ma era tutto ok anche con versioni precedenti...
Oh, comunque, non so se abbiate letto ma i miei dubbi riguardo al fatto che l'app non si avviasse automaticamente al ricevimento del messaggio FCM, Erel mi ha chiarito le idee.
Semplicemente (si fa per dire) un conto è se il S.O. chiude l'app, un altro è se la chiude l'utente (in questo caso io) dalle impostazioni.
Nel primo caso l'app verrà riavviata alla ricezione del messaggio, nel secondo no.