Italian HUAWEI P8

nicolino33

Active Member
Licensed User
Longtime User
Ragazzi buongiorno, sono 5 giorni che sto uscendo pazzo con sto huawei, non c'è modo di far stare attivo un servizio dopo la chiusura dell'app, quando l'utente sposta l'app nel cestino o la chiude col dito il servizio cessa e non riparte più, premetto che questo argomento l'ho anche postato nel forum inglese e nessuno ha una soluzione, premetto inoltre che ho tentato con il restart del servizio a orario fisso e ogni minuto, il restart l'ho messo sia in serve destroy che in service start, ho provato anche ad acquisire il parzial lok, ha mettere un altro servizio che se vede cadere il primario lo riattiva, e niente da fare. Mi hanno consigliato di adottare le notifiche push, ma preferirei evitare se possibile, avete una soluzione per caso?
 

LucaMs

Expert
Licensed User
Longtime User
Ho appena letto il thread "inglese" (ho anch'io un P8).

Da quel che ho capito, l'unica soluzione certa sono le notifiche, in quanto sono un servizio di sistema.

L'altra soluzione che Erel ti ha suggerito:

You must have a foregound service and acquire a partial lock with PhoneWakeState.

You should still expect the process to be killed from time to time.


non è affidabile al 100%, come lui stesso ha precisato, in quanto il processo potrebbe venire "ucciso" lo stesso.



In questo caso, una volta tanto, la colpa non è del P8 :D
 

nicolino33

Active Member
Licensed User
Longtime User
Ciao Luca, purtroppo anche la soluzione che ha proposto Erel non ha funzionato, alla fine ho dovuto ricorrere per forza alle push modificando buona parte del mio programma, in quanto le push si limitano a inviare una semplice notifica, che poi a sua volta dovrà attivare il resto del programma nel momento in cui l'utente clicca.
 

LucaMs

Expert
Licensed User
Longtime User
Per dirne un paio sul P8...

ho un'app che emette dei suoni, in alcuni casi; beh, in alcuni casi il P8 li esegue, in altri no (gli stessi, nella stessa Activity e nelle stesse condizioni, ovviamente), quando gli pare :p:mad:

Altra cosa è che se avvii la tua app, metti lo smartphone in standby e lo riattivi, per un momento si mette in portrait e se la tua app prevede solo il landscape ti ricrea l'Activity, con conseguente perdita di eventuali dati inseriti ed il reset di variabili varie.
Questa però è colpa mia, o meglio, questo potrebbe succedere in tutte le Activity e su qualunque dispositivo; quindi consiglio di usare sempre StateManager:
https://www.b4x.com/android/forum/t...android-applications-settings-and-state.9777/

(quest'ultima era la cosa principale per la quale ho scritto questo post; certamente non è il luogo adatto, ma meglio che niente :)).
 

nicolino33

Active Member
Licensed User
Longtime User
Si ma la cosa ancor più strana è che manco le push vanno su P8, era troppo bello per essere vero, ho testato 6 dispositivi con android 6,7 e 8 e tutto ok, il P8 con android 6 niente da fare, quando chiudi l'app non riceve più niente, manco le push di FIREBASE. Però WhatsApp funziona, quindi mi chiedo: quale potrebbe essere la soluzione?

la mia è predisposta solo in portrait, e in ogni caso tutte le variabili di utilità sono nel servizio, e ho previsto anche l'eventualità della perdita, quindi quantomeno sotto quell'aspetto sono aposto, ma se sto benedetto servizio non parte e non arrivano manco le push l'app è morta e sepolta nel P8, che poi ora si parla di P8 ma forse il discorso è anche più ampio….
 

LucaMs

Expert
Licensed User
Longtime User
A questo punto o è proprio qualche difetto del P8 - però se non sbaglio il mio è diverso dal tuo, mi pare di aver letto che il tuo ha Android 6, il mio il 7 (P8 Lite 2017) - oppure ha qualche impostazione strana da dover settare.



[Per @udg: si, non mi piace il termine "settare", ma non potevo usare "impostare" dopo aver scritto "impostazione strana" :D. Avrei dovuto trovare un sinonimo ma a quest'ora non mi è stato possibile :p]

P.S. Beh, non è solo un mio problema (non trovare un sinonimo adeguato per "impostare"):
upload_2018-6-28_5-38-59.png


Mi pare che nessuno vada bene.
 
Last edited:

nicolino33

Active Member
Licensed User
Longtime User
è.... magari fosse quello il problema, è la prima cosa che ho fatto…. le notifiche push una volta ricevute dal telefono dovrebbero inviare un intento al servizio dell'app in cui le hai attivate, quindi teoricamente quel servizio anche se non è attivo viene svegliato dalla notifica, e siccome nel servizio stesso è presente una sub che crea una notifica normale non appena intercettata la push, quando arriva la push quel servizio dovrebbe attivarsi e visualizzare la notifica, ma evidentemente huawei blocca il servizio inclusi eventuali intenti indirizzati allo stesso, e di conseguenza quando parte la push da firebase arriva si al huawei ma questo non invia l'intento al servizio. Non vorrei che il problema dipende dal fatto che l'app non è pubblicata sullo store, e di conseguenza huawei non la ritiene attendibile bloccando tutto. Non vedo altra ragione, perché se non funzionassero anche su gli altri dispositivi in cui ho provato allora potrei anche pensare che potrebbe essere un mio errore di programmazione, ma funziona tutto negli altri, anche dopo aver spento e riacceso il telefono e senza avviare l'app le notifiche push arrivano e siccome ho impostato la notifica in modo che quando ci clicchi si avvia l'app questa si avvia regolarmente. Il problema è solo del huawai.

Tra l'altro, ho notato un altra cosa: se vai nelle impostazioni e disattivi l'app manualmente, le push non arrivano più in nessun dispositivo, quindi è probabile che huawei disattiva l'app.
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
è.... magari fosse quello il problema, è la prima cosa che ho fatto…. le notifiche push una volta ricevute dal telefono dovrebbero inviare un intento al servizio dell'app in cui le hai attivate, quindi teoricamente quel servizio anche se non è attivo viene svegliato dalla notifica, e siccome nel servizio stesso è presente una sub che crea una notifica normale non appena intercettata la push, quando arriva la push quel servizio dovrebbe attivarsi e visualizzare la notifica, ma evidentemente huawei blocca il servizio inclusi eventuali intenti indirizzati allo stesso, e di conseguenza quando parte la push da firebase arriva si al huawei ma questo non invia l'intento al servizio. Non vorrei che il problema dipende dal fatto che l'app non è pubblicata sullo store, e di conseguenza huawei non la ritiene attendibile bloccando tutto. Non vedo altra ragione, perché se non funzionassero anche su gli altri dispositivi in cui ho provato allora potrei anche pensare che potrebbe essere un mio errore di programmazione, ma funziona tutto negli altri, anche dopo aver spento e riacceso il telefono e senza avviare l'app le notifiche push arrivano e siccome ho impostato la notifica in modo che quando ci clicchi si avvia l'app questa si avvia regolarmente. Il problema è solo del huawai.
Mi pare d'aver capito il funzionamento; dovrebbe essere quello che fa Zynga Poker e che piacerebbe fare anche a me :D

E' come se avessi un tuo servizio sempre pronto in background mentre in realtà viene attivato dalla notifica di Firebase, giusto?


Tra l'altro, ho notato un altra cosa: se vai nelle impostazioni e disattivi l'app manualmente, le push non arrivano più in nessun dispositivo, quindi è probabile che huawei disattiva l'app.
Questa non mi è chiarissima. Tu disattivi l'app su un dispositivo (mettiamo il P8) e da quel momento non ricevi più notifiche (per quell'app) da Firebase sugli altri dispositivi?
Non so come siano fatte, come detto non ho provato, ma questo, a naso, mi fa pensare che siano legate anche all'account Google, non solo all'app.
 

LucaMs

Expert
Licensed User
Longtime User
Eppure, continuando a cercare, trovo sempre spiegazioni simili:
https://onesignal.com/blog/manufacturers-interfere-with-reliable-notifications/

Anche in quella pagina suggeriscono:
upload_2018-6-28_12-29-13.png


Se troverò forza e coraggio (benché non siamo né in aprile né in maggio :D) forse proverò l'esempio di Erel (B4J) pubblicato nel thread relativo:
https://www.b4x.com/android/forum/t...s-firebase-cloud-messaging-fcm.67716/#content

(la scocciatura è effettuare le varie registrazioni..., altrimenti l'avrei già fatto).
 

nicolino33

Active Member
Licensed User
Longtime User
Che dire Luca, intanto grazie mille per l'interessamento, io vado avanti… Tieni conto comunque che la registrazione e l'utilizzo di Firebase è una cosa veramente velocissima e semplicissima, peccato però che il suo utilizzo ti vincola in qualche modo a loro, io volevo evitare di dover dipendere da altri, ma in ogni caso visto il loro servizio e la padronanza che ormai ha Google credo che se oggi non sia indispensabile farlo ed il problema sip pone solo con huawei, un domani forse sarà obbligatorio… Perché Firebase oltre che offrire quel servizio monitora tutto della tua app, ogni cosa, ogni errore, il comportamento etc... quindi in fin dei conti da un lato è un approccio più sicuro per garantire la sicurezza e la genuinità della tua app, dall'altra parte sei vincolato a loro.
 

LucaMs

Expert
Licensed User
Longtime User
peccato però che il suo utilizzo ti vincola in qualche modo a loro
Comunque, affidarsi ad altri (Firebase) lo trovo sempre un "rischio".
porca trota ogni tanto esageri. Se non dovessimo affidarci ad altri
"rischio". Non mi riferivo a questioni di sicurezza (benché... fidarsi è bene ma non fidarsi è meglio) ma al fatto che può capitare che un'azienda fallisca, oppure smetta di fornire un certo servizio oppure inizi a farsi pagare per quanto prima offrisse gratuitamente.
che è come dire: concordo assolutamente.


Temo che i vari problemi come questo non siano solo legati a Huawei ma probabilmente a non poche marche cinesi.

Prima o poi troveremo la soluzione ;)
 

nicolino33

Active Member
Licensed User
Longtime User
Ed io concordo con te sul discorso aziendale ed il resto, e si, saranno non poche marche, e ci sta a pieno che WhatsApp e company abbiano accordi con i giganti del web come Google per mettere in piedi servizi riservati e funzioni varie, in quanto complica la vita a chi vuole prendere il loro posto :) bisognerebbe scrivere due righe a Google per capire com'è la storia…

Cia aggiorniamo… ciao!
 

Antonio1

Member
Licensed User
Longtime User
Ciao...
Hai prova a leggere il primo post del thread

Android Tutorial Setting up Firebase messaging in 5 minutes ...

Che parla della questione del p8...

Ciao
 

nicolino33

Active Member
Licensed User
Longtime User
Ciao Antonio, ho già fatto quella verifica, l'app è consentita, ma il problema persiste. lo stesso problema capita anche su un tablet con android 6: Model K900; Product K109; SdkVersion 19, questo quando se ne va in standby fa la stessa cosa del p8, blocca l'app, ma qui sono riuscito a risolvere con il servizio di cui parlavo, ovvero un secondo servizio che si avvia ogni minuto e verifica se il servizio principale è attivo, e mi rendo conto che funziona in quanto sul server vedo disconnettersi il K109 e dopo un paio di minuti si riconnette, tra l'altro non è nemmeno una cosa fissa, infatti quando si riconnette a volte resta connesso per 5 minuti e altre volte per delle ore.
 

nicolino33

Active Member
Licensed User
Longtime User
Comunque Antonio, quella è sicuramente una impostazione di cui tenerne conto, esiste un modo per verificare lo stato in cui si trova mediante l'utilizzo di una app di nostra progettazione? e magari se si può anche settare con un intento.
 

Antonio1

Member
Licensed User
Longtime User
Ciao nicolino33

Occorre verificare se qualche libreria permette di automatizzare la verifica e il settaggio per quei device come il p8...

Io al momento per il p8 faccio agire manualmente per evitare che il sistema uccide per motivi energetici il servizio in sottofondo...
Quindi impostazioni - impostazioni avanzate - gestione batteria - app. protette - e flag abilita protezione della tua app...
Comunque è sicuramente interessante trovare un automatismo in fase di prima installazione...
Ti faccio sapere se trovo qualcosa...

Ciao
 

nicolino33

Active Member
Licensed User
Longtime User
E' si io credo che sia possibile, probabilmente c'è da inserire un autorizzazione nel manifest per farlo, e non vorrei ricordare male ma nel forum avevo proprio visto un thread che parlava di questo, ma non riesco più a trovarlo.
 

LucaMs

Expert
Licensed User
Longtime User
E' si io credo che sia possibile, probabilmente c'è da inserire un autorizzazione nel manifest per farlo, e non vorrei ricordare male ma nel forum avevo proprio visto un thread che parlava di questo, ma non riesco più a trovarlo.
Il tempo di capire meglio a cosa vi riferite (rileggo) e se c'è te lo trovo: sono un esperto... solo in ricerca su b4x :D
 
Top