home Android


Android e le notifiche push con Firebase

Firebase Cloud Messaging (FCM), successore di Google Cloud Messaging GCM, è un servizio che offre una soluzione alla messaggistica istantanea multipiattaforma. Offerto da Google permette, oltre alla gestione di cloud database, piattaforme di testing, crash reporting e autenticazione, di inviare messaggi push in modo del tutto gratuito e illimitato. Vediamo quindi come utilizzare FCM per implementare le notifiche push in un sistema composto da un server PHP e un'applicazione Android. Per quanto riguarda il lato applicazione, Android Studio ci viene in aiuto integrando la piattaforma Firebase (raggiungibile da Tools > Firebase) e con pochi click potremo connettere l'app al servizio e inserire le dipendenze mancanti nel nostro progetto. Sarà infatti sufficiente specificare le dipendenze per la compilazione nei due file build.gradle, importare com.google.firebase.iid.FirebaseInstanceId nella classe in cui andremo ad utilizzarlo e inserire il file google-services.json - che possiamo reperire dalla console di Firebase - sotto app/ .   A questo punto la configurazione dell'applicazione è terminata e il token identificativo di registrazione al servizio sarà raggiungibile attraverso la chiamata al metodo FirebaseInstanceId.getInstance().getToken(). Possiamo verificare il corretto funzionamento direttamente dal pannello di Firebase, dove, nella pagina Notifications, potremo creare manualmente delle notifiche da inviare alla nostra applicazione.   Per quanto riguarda invece la configurazione lato server, utile per automatizzare l'invio delle push in determinate occorrenze, come potrebbe essere la pubblicazione di un nuovo articolo, avremo bisogno di uno script in PHP che, prese in input la chiave per le API lato server e i token delle applicazioni, invii la notifica. Innanzitutto dovremo ottenere la API key per il server, che possiamo trovare nel pannello di gestione delle API di Google. Dovrebbero esserci tre chiavi con la dicitura (auto created by Google Service) tra cui anche la Server Key.   Il codice seguente permette di generare una notifica e "spedirla" all'applicazione specificando $title e $body come titolo e contenuto della stessa: $msg = array(    'body' => $body,    'title' => $title,    'vibrate' => 1,    'sound' => 1,);$fields = array(    'registration_ids' => $registrationIds,    'notification' => $msg);$headers = array(    'Authorization: key=' . API_ACCESS_KEY,    'Content-Type: application/json');$ch = curl_init();curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' );curl_setopt( $ch,CURLOPT_POST, true );curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );$result = curl_exec($ch );curl_close( $ch );return $result; Dove API_ACCESS_KEY è la Server Key e $registrationIds sarà un array di stringhe contenente i token delle applicazioni registrate. Per completare la procedura e renderla funzionante manca soltanto la gestione dei token. Per farlo sarà necessario salvare nel database del server tutti i codici delle applicazioni registrate, che avremo ottenuto attraverso il metodo getToken() citato all'inizio. Sarà quindi sufficiente, lato applicazione, chiamare questo metodo ed inviare il token al server attraverso una richiesta GET o PUSH, che provvederà poi a salvarlo nel database e recuperarlo all'occorrenza per popolare $registrationIds.

Alla ricerca del... launcher perfetto - Z Launcher

UPDATE:  Nokia ha recentemente comunicato la fine dello sviluppo di Z Launcher. Z Launcher,  è come suggerisce il nome, un launcher alternativo per Android, sviluppato da Nokia. Ho seguito il suo sviluppo dalla sua prima release e fin da subito mi ha colpito positivamente; considerando anche il fatto che tutt'ora si trova in stato di beta. L'approccio che propone Z launcher è rivoluzionario e molto smart. La home page è composta da una lista di sei applicazioni, che ci vengono proposte dal launcher. Grazie ad un algoritmo Z launcher imparerà dalle nostre abitudini e in ogni momento della giornata, quando sbloccheremo lo smartphone, cercherà di proporci le applicazioni che potrebbero servirci in quel preciso istante. E se per caso l'applicazione di cui abbiamo bisogno non si trova tra quelle della schermata principale? Nessun problema, ci viene incontro un'altra funzionalità di Z launcher, la scrittura a mano libera. Nella schermata principale sarà possibile scrivere una lettera, in modo da ricercare tutto quello che inizia con quella lettera, sia applicazioni sia contatti telefonici sia risultati di ricerca web. Vi assicuro che la comodità di cercare qualcosa con questo metodo è sbalorditiva, tant'è che inizierete a voler cercare le cose all'interno della vostra stanza semplicemente scrivendo una lettera. Inoltre i risultati della ricerca non ci vengono proposti a caso, bensì saranno ordinati secondo quello che il launcher pensa potreste aver bisogno, e ci azzecca quasi sempre. Nelle rarissime occasioni in cui non avrete trovato il risultato corretto scrivendo una sola lettera potrete scriverne una seconda e nell 99,99% dei casi troverete il risultato che vi aspettate. Abbiamo parlato di funzioni innovative, ma un utente Android si starà chiedendo "e i widget?" Ovviamente in Nokia hanno pensato anche a questo aspetto, facendo uno swipe da sinistra a destra si trova una pagina configurabile con tutti i nostri widget. Per molti una pagina sola potrebbe sembrare poco ma personalmente la trovo sufficiente. Inoltre un widget è presente anche nella schermata principale dove ci vengono mostrata ora e prossimi appuntamenti dal nostro calendario.  Con uno swipe da destra a sinistra, nella schermata iniziale, troveremo  il drawer delle applicazioni, ordinato alfabeticamente, anche'esso comodo ma non particolarmente utile, viste le funzioni citate sopra. Considerando che è una versione beta, ma tenendo conto che lo sviluppo dura ormai da due anni e mezzo alcune problematiche riguardanti le prestazioni non sono trascurabili. Alcune volte infatti il sistema non appare fluido, per esempio nella ricerca, o in alcune animazioni. Spesso uscendo da applicazioni pesanti, come i giochi, dovremo aspettare alcuni secondi prima che la lista delle applicazioni venga ricaricata.  Nelle passate versioni era anche presento un sostanzioso battery drain, che attualmente sembra essere stato eliminato quindi la speranza di un miglioramento delle prestazioni non è certamente mal riposta. Le possibilità di personalizzazione sono sicuramente meno ampie rispetto ad altri launcher, si limitano infatti alla grandezza delle icone e al tema delle stesse. Per questo motivo i più affezionati allo "stile classico" si potrebbero trovare a disagio e poter voler tornare indietro. Ma vi assicuro che avrete sempre nostalgia di Z Launcher e della sua intuitività nell'uso. Potete scaricare Z Launcher da qui: https://play.google.com/store/apps/details?id=com.nokia.z Test effettuato con: LG G Flex 2 In definitiva il voto complessivo per Z Launcher è di 9/10.

Alla ricerca del... launcher perfetto - Evie Launcher

Un aspetto rilevante di uno smartphone Android è sicuramente l'estremo grado di personalizzazione. Senza dover avventurarci in procedimenti più "complicati" come l'installazione di una rom cucinata, possiamo modificare il look del nostro telefono installando un nuovo launcher. Negli ultimi anni ne sono stati pubblicati a dozzine sul Play Store e chi tra di noi non ha provato almeno uno? Ultimamente però la scelta è così vasta che trovarne uno che ci piaccia sta diventando piuttosto complicato. A questo scopo nasce questa nuova rubrica che ha come obiettivo trovare il miglior launcher Android, facendo una panoramica di pregi e difetti conditi con impressioni personali, cercando di essere d'aiuto in questa ardua scelta. Oggi parliamo di Evie Launcher, che si è rivelato essere una piacevole sorpresa, soprattuto nella sua ultima relase. Uscito ormai da qualche mese, ha visto negli ultimi giorni un importante aggiornamento che lo ha piacevolmente rivoluzionato, rendendolo simile al Pixel Launcher. L'interfaccia non viene stravolta rispetto all'esperienza Android standard, rimarrà la classica impostazione a schermate della home con la possibilità di inserire widget. Rimane anche il drawer delle applicazioni anche se ridisignato con la possibilità della vista in verticale oppure quella classica con 4 icone per riga, putroppo il numero di colonne e di righe non è modificabile. La feature più interessante è sicuramente la ricerca, attivabile sia con un comodo swipe dall'alto verso il basso, oppure facendo tap sulla barra di ricerca, all'apertura ci verranno presentate le app utilizzate recentemente. La ricerca non si limita solamente ad una ricerca tra le app installate, ma sfruttando i servizi di Google ci verranno proposti luoghi tramite Google Maps; giochi, canzoni, app provenienti dal Google Play Store e altri risultati provenienti dalla ricerca google. Come sempre per capire bisogna provare, ma vi posso assicurare che la comodità che offre è davvero elevata.  Le impostazioni sono moltissime tra le quali: numero di colonne, righe e dimensione delle icone della homescreen totalmente personalizzabile possibilità di modificare il layout della dock badge per le notifiche non lette gesture come il doppio tap per spegnere lo schermo Infine non si possono non nominare il redesign delle cartelle e il menu dei widget che è raggruppato per app. Niente è perfetto e qualche piccolo difetto lo troviamo, nella schermata home dove non è presente un menù di scelta rapida alla pressione dell'icona. Trascurabile per la maggior parte degli utenti android ma non da chi ha provato le nuove scorciatoie "alla pixel". In definitiva il voto che diamo ad Evie Launcher è di 8/10. Ringraziamo Lorenzo per la segnalazione di questo ottimo launcher.

Automate, l'alternativa a tasker

Per chi non la conoscesse Automate è un'app disponibile per Android, che ci permette di automatizzare diverse azioni che compiamo quotidianamente. Ad esempio l'accessione automatica del wi-fi una volta che arriviamo a casa, oppure l'effettuare un backup di tutte le foto che abbiamo scattato durante la giornata. Ovviamente gli utilizzi possono essere moltissimi e sono limitati solo dalla fantasia. Fatte le dovute presentazioni passiamo col dire che da un po di tempo a questa parte  si sta imponendo come principale alternativa a tasker altra famosa app di automazione.  La forza di automate sta nella semplicità, creare i flow, ovvero i percorsi logici da far seguire all'applicazione è veramente facilissimo. Il meccanismo è basato su delle tessere da posizionare sullo schermo per poi connetterle tra di loro creando un percorso logico in modo da ottenere un determinato comportamento. Ad esempio se vogliamo accendere il wi-fi una volta arrivati a casa, non dobbiamo far altro che prendere la tessera che controlla la nostra posizione ed unirla alla tessera che abilita il wi-fi. Insomma, chi ha un po di competenze informatiche avrà già capito che stiamo parlando di qualcosa di molto simile ai diagrammi di flusso.  Ogni tessera per funzionare avrà bisogno di particolari permessi installabili direttamente dall'applicazione. Tappando sull'apposito tasto ci verrà chiesto di scaricare una app contenente i relativi permessi. Inoltre alcune funzioni avranno bisogno dei permessi di root per essere eseguite, come ad esempio quelle relative all'attivazione della connessione dati. Ovviamente tutto questo ben di dio ha un prezzo(onesto), l'applicazione è infatti disponibile gratuitamente sul play store ma da la possibilità di avere in esecuzione contemporaneamente flow per un totale di 30 tessere, che sembrano tante ma una volta che ci si prende la mano sono molto poche. Soprattutto perchè automate mette a disposizione una community dove gli utenti possono fare upload dei propri flow per condividerli. Molti di quelli presenti e, secondo il mio parere, tra quelli più interessanti richiedono la versione pro dell'app. In conclusione automate può essere un valido sostituto di tasker sia per gli inesperti sia per i più geek. Certo è che chi si è già costruito il proprio "ecosistema" su tasker difficilmente sarà disposto a cambiare.  

Magisk: il root, systemless

Magisk Is A Magic Mask to Alter System Systemless-ly Si chiama Magisk, abbreviazione di Magic Mask, e promette di poter fruire di determinate Mod, fino ad ora rigorosamente installate nella partizione di sistema del telefono, senza però toccare tale partizione. Fino ad oggi qualsiasi Mod, quale l'ottenimento dei permessi di Root, l'utilizzo del framework Xposed e dei suoi moduli, Viper4Android, AdAway e chi più ne ha più ne metta, per poter funzionare dovevano essere installati sotto /system, la partizione contenente tutti i file e le applicazioni di sistema di Android. Un vero limite, se pensiamo che la modifica della partizione di sistema compromette la possibilità  di ricevere aggiornamenti OTA ufficiali, piuttosto che utilizzare le più famose app per il Mobile Banking o qualsiasi applicazione che per sicurezza controlli l'integrità  del sistema. Nasce così il root systemless, in grado quindi di mantenere inalterata questa partizione di Android, che ha debuttato con l'avvento di Android Lollipop 5.0, ma senza ottenere chissà  che successo non fornendo alcuna funzionalità  in più rispetto al sistema di rooting standard. È solo con l'arrivo di Android Pay (in Italia.. va beh [ndr]) che qualcosa sotto questo fronte ha iniziato realmente a muoversi. Perchè? Perchè Google ha pensato - correttamente - di negare l'utilizzo di Android Pay ai dispositivi con permessi di root per questioni di sicurezza. Come? Fornendosi di Google Play Services, un servizio presente su tutti i dispositivi Android (o per lo meno tutti quelli con GApps installate), per far comunicare i terminali con SafetyNet, un sistema remoto di controllo di integrità del sistema Android. Chiaramente tutti i dispositivi con una modifica anche minima della partizione di sistema risultano non conformi, di conseguenza impossibilitati ad utilizzare Android Pay e qualunque altra app che utilizzi la SafetyNet API (Qualcuno ha detto Pokemon GO?!?). Magisk nasce proprio con questo obiettivo, quello di poter passare il test di integrità  di SafetyNet e usufruire dei benefici del root sullo stesso dispositivo. Al posto di modificare /system va ad installare nella boot image del sistema un "layer" aggiuntivo tra il sistema stesso e le varie Mod. Ma che benefici ci dà ? La partizione di sistema non viene toccata, SafetyNet OK! Il root, come i moduli Xposed e qualsiasi altra Mod possono essere attivati e disattivati (montati e smontati) "On The Fly", senza dover riavviare il dispositivo (per i moduli Xposed ad esempio) e senza effettuare la procedura di unroot Non toccando /system ad ogni aggiornamento non sarà  necessario reinstallare le mod Ma se fino alla versione 6 Magisk era utile per nascondere il root da applicazioni con questo tipo di controllo, con l'aggiornamento alla versione 7 rilasciato il 3 ottobre e successive, lo sviluppatore topjohnwu ha deciso di puntare più in alto, mirando a fare di Magisk un'interfaccia universale, offrendo la possibilità di installare qualsiasi Mod in modalità systemless attraverso la nuova applicazione Magisk Manager, inclusi Root e Xposed. Vediamo quindi la procedura di installazione in modo da coprire tutte le possibilità . 1) Dispositivo senza root Riavviare il dispositivo in recovery [1] Flashare Magisk Flashare phh's SuperUser [2] Riavviare il telefono e installare Magisk Manager 2) Dispositivo con SuperSU Systemless o con una precedente versione di Magisk Installare Magisk Manager Effettuare l'installazione/update di Magisk dall'applicazione Riavviare il dispositivo 3) Dispositivo con root in modalità NON systemless Installare SuperSU dal PlayStore Effettuare la procedura di unroot dall'applicazione Riavviare il telefono e seguire i passi di 1)  Link alla discussione ufficiale su XDA: http://forum.xda-developers.com/apps/magisk/official-magisk-v7-universal-systemless-t3473445   N.B. Con la versione 9 di Magisk è stato introdotta la scheda Magisk Hide, che permette di "nascondere" il root alle applicazioni selezionate. Sarà quindi sufficiente selezionare Google Play Services (com.google.android.gms), i due demoni associati .policy e .setup e le applicazioni che richiedono un dispositivo "vergine" e senza permessi di root per funzionare (Qualcuno ha detto Pokemon GO?!? pt.2). N.B.2 Nel caso in cui, anche dopo aver abilitato Magisk Hide non riusciste ad utilizzare le applicazioni protette attraverso SafetyNet, sarà sufficiente installare il modulo Universal SafetyNet Fix e riavviare il dispositivo (attualmente supporta le versioni 12 e 13.1 di Magisk). Il risultato positivo sarà confermato dalla doppia spunta verde nella sezione Controllo SafetyNet di Magisk Manager. Per concludere, se mai doveste avere la necessità di disinstallare Magisk, dopo aver rimosso i moduli direttamente dall'app e aver riavviato il dispositivo, basterà flashare da recovery questo pacchetto zip. [1] È necessario disporre di una recovery modificata, di conseguenza aver precedentemente sbloccato il Bootloader. La più nota, completa ed utilizzata attualmente è la TWRP ed essendo la procedura di installazione potenzialmente personalizzata per ogni dispositivo, vi rimando al sito ufficiale per maggiori informazioni a riguardo. [2] Dalla versione 11, trattata nello specifico in questo articolo, non è più necessaria l'installazione del pacchetto phh's Superuser, poichè i binari necessari ai permessi di root sono integrati in Magisk.

Google Assistant su Marshmallow con Android N-ify

Si tratta di un'assistente vocale che si avvicina di più ai noti Siri e Cortana grazie alla cosiddetta Intelligenza Artificiale, che permetterà di avere un rapporto più "umano" con il nostro smartphone. L'Assistente Google è stato studiato infatti per poter "apprendere" dalle nostre abitudini e dalla nostra routine (le app più utilizzate, i luoghi visitati, le ricerche su Google, ecc) in modo da poter "essere sempre sul pezzo" e risponderci nel modo migliore e più utile a noi in quel momento. Questa feature sarà però preinstallata nei successori della serie Nexus e disponibile a tutti, pare, da Android 7.1. Quindi, prima di poterla provare passerà qualche mese (o qualche dispositivo...). Ecco però che su XDA sono comparsi i primi tweak per poter abilitare il nuovo assistente su qualsiasi Android 7.0 attraverso una modifica del build.prop e dell'app Google in modo da far credere al sistema di girare su un telefono della serie Pixel (qui per maggiori dettagli). E per chi è fermo ad Android 6.x? La soluzione non si è fatta attendere ed ecco che MrWasdennnoch, sviluppatore del modulo Xposed Android N-ify annuncia che la alpha build di oggi permette di abilitare l'Assistente Google su Android Marshmallow. Android N-ify è un modulo Xposed che permette di modificare l'interfaccia del nostro Android e di sfruttare alcune novità introdotte con Android Nougat come la nuova barra dei Quick Tile e le notifiche ridisegnate con risposta rapida. E da oggi permette appunto di abilitare l'Assistente Google. Per chi fosse interessato basta installare l'app da qui e disporre dell'App Google aggiornata all'ultima beta (6.6.21.arm). N.B.: Ricordo che questa modifica è disponibile solo su dispositivi con permessi di root e Xposed installato. Enjoy!" class="form-control" rows=30>Durante la presentazione dei nuovi Pixel e Pixel XL, Google ha introdotto anche quella che sarà l'evoluzione di Google Now, nota come Assistente Google (Google Assistant). Si tratta di un'assistente vocale che si avvicina di più ai noti Siri e Cortana grazie alla cosiddetta Intelligenza Artificiale, che permetterà di avere un rapporto più "umano" con il nostro smartphone. L'Assistente Google è stato studiato infatti per poter "apprendere" dalle nostre abitudini e dalla nostra routine (le app più utilizzate, i luoghi visitati, le ricerche su Google, ecc) in modo da poter "essere sempre sul pezzo" e risponderci nel modo migliore e più utile a noi in quel momento. Questa feature sarà però preinstallata nei successori della serie Nexus e disponibile a tutti, pare, da Android 7.1. Quindi, prima di poterla provare passerà qualche mese (o qualche dispositivo...). Ecco però che su XDA sono comparsi i primi tweak per poter abilitare il nuovo assistente su qualsiasi Android 7.0 attraverso una modifica del build.prop e dell'app Google in modo da far credere al sistema di girare su un telefono della serie Pixel (qui per maggiori dettagli). E per chi è fermo ad Android 6.x? La soluzione non si è fatta attendere ed ecco che MrWasdennnoch, sviluppatore del modulo Xposed Android N-ify annuncia che la alpha build di oggi permette di abilitare l'Assistente Google su Android Marshmallow. Android N-ify è un modulo Xposed che permette di modificare l'interfaccia del nostro Android e di sfruttare alcune novità introdotte con Android Nougat come la nuova barra dei Quick Tile e le notifiche ridisegnate con risposta rapida. E da oggi permette appunto di abilitare l'Assistente Google. Per chi fosse interessato basta installare l'app da qui e disporre dell'App Google aggiornata all'ultima beta (6.6.21.arm). N.B.: Ricordo che questa modifica è disponibile solo su dispositivi con permessi di root e Xposed installato.