Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa esercitazione illustra come usare Hub di notifica di Azure e la versione aggiornata di Firebase Cloud Messaging (FCM) SDK (versione 1.0.0-preview1) per inviare notifiche push a un'applicazione Android. In questa esercitazione viene creata un'app Android vuota che riceve notifiche push usando Firebase Cloud Messaging (FCM).
Importante
A partire da giugno 2024, le API legacy FCM non sono più supportate e quindi vengono ritirate. Per evitare interruzioni nel servizio di notifica push, è necessario eseguire la migrazione al protocollo FCM v1 il prima possibile.
È possibile scaricare il codice completo per questa esercitazione da GitHub.
Questa esercitazione illustra i passaggi seguenti:
- Creare un progetto di Android Studio.
- Creare un progetto Firebase che supporta Firebase Cloud Messaging.
- Creare un hub di notifica.
- Connettere l'app all'hub.
- Test dell'app.
Prerequisiti
Per completare l'esercitazione, è necessario disporre di un account Azure attivo. Se non si dispone di un account, è possibile creare un account di valutazione gratuita in pochi minuti. Per informazioni dettagliate, vedere Versione di valutazione gratuita di Azure.
Annotazioni
Le API Google/Firebase non sono supportate nelle aree di Azure Cina.
Sono necessari anche gli elementi seguenti:
- È consigliabile usare la versione più recente di Android Studio .
- Il supporto minimo è il livello API 19.
Creare un progetto Android Studio
Il primo passaggio consiste nel creare un progetto in Android Studio:
Avviare Android Studio.
Selezionare File, quindi Nuovo e quindi Nuovo progetto.
Nella pagina Choose your project (Scegliere il progetto) selezionare Empty Activity (Attività vuota) e quindi Next (Avanti).
Nella pagina Configura il progetto eseguire le operazioni seguenti:
- Immettere un nome per l'applicazione.
- Specificare un percorso in cui salvare i file del progetto.
- Selezionare Fine.
Creare un progetto Firebase che supporta FCM
Accedere alla console di Firebase. Crea un nuovo progetto Firebase se non ne hai già uno.
Dopo aver creato il progetto, selezionare Add Firebase to your Android app (Aggiungi Firebase all'app Android).
Nella pagina Aggiungi Firebase all'app Android eseguire le operazioni seguenti:
Per Il nome del pacchetto Android copiare il valore di applicationId nel file build.gradle dell'applicazione. In questo esempio è
com.fabrikam.fcmtutorial1app
.Selezionare Registra l'app.
Selezionare Download google-services.json (Scarica google-services.json), salvare il file nella cartella app del progetto e quindi selezionare Avanti.
Nella console di Firebase, selezionare l'ingranaggio per il proprio progetto. Selezionare quindi Impostazioni progetto.
Se il file digoogle-services.json non è stato scaricato nella cartella dell'app del progetto Android Studio, è possibile farlo in questa pagina.
Passare alla scheda Messaggistica Cloud.
Copiare e salvare la chiave server per usarla in un secondo momento. Questo valore viene usato per configurare l'hub.
Se nella scheda Firebase Cloud Messaging non viene visualizzata una chiave server, seguire questa procedura:
- Seleziona il menu a tre punti dell'intestazione Cloud Messaging API (Legacy) Disabilitata.
- Seguire il collegamento a Gestisci API in Google Cloud Console.
- In Google Cloud Console selezionare il pulsante per abilitare l'API Google Cloud Messaging.
- Attendere qualche minuto.
- Tornare alla scheda Cloud Messaging del progetto console Firebase e aggiornare la pagina.
- Assicurati che l'intestazione dell'API Messaggistica Cloud sia stata modificata in Cloud Messaging API (Legacy) abilitata e ora mostri una chiave server.
Configurare un hub di notifica
Accedi al portale di Azure.
Scegliere Tutti i servizi dal menu a sinistra e quindi selezionare Hub di notifica nella sezione Dispositivi mobili. Selezionare l'icona a forma di stella accanto al nome del servizio per aggiungere il servizio alla sezione PREFERITI nel menu a sinistra. Dopo aver aggiunto Hub di notifica a PREFERITI, selezionarlo nel menu a sinistra.
Nella pagina Hub di notifica selezionare Aggiungi sulla barra degli strumenti.
Nella pagina Hub di notifica eseguire le operazioni seguenti:
Immettere un nome in Hub di notifica.
Immettere un nome in Crea un nuovo spazio dei nomi. Uno spazio dei nomi contiene uno o più hub.
Selezionare un valore nell'elenco a discesa Località. Questo valore specifica la posizione in cui creare l'hub.
Selezionare un gruppo di risorse esistente in Gruppo di risorse o crearne uno nuovo.
Fare clic su Crea.
Selezionare Notifiche (icona a forma di campanello) e quindi selezionare Vai alla risorsa. È anche possibile aggiornare l'elenco nella pagina Hub di notifica e selezionare l'hub.
Selezionare Criteri di accesso dall'elenco. Si noti che sono disponibili due stringhe di connessione. Sono necessarie in un secondo momento per gestire le notifiche push.
Importante
Non usare il criterio DefaultFullSharedAccessSignature nell'applicazione. Questo criterio deve essere usato solo nel back-end dell'app.
Configurare le impostazioni di Firebase Cloud Messaging per l'hub
Nel riquadro a sinistra in Settings (Impostazioni) selezionare Google (GCM/FCM).
Immettere la chiave del server per il progetto FCM salvato in precedenza.
Nella barra degli strumenti, seleziona Salva.
Il portale di Azure visualizza un messaggio che informa che l'hub è stato aggiornato correttamente. Il pulsante Save (Salva) è disabilitato.
L'hub di notifica è ora configurato per l'uso con Firebase Cloud Messaging. Sono anche disponibili le stringhe di connessione necessarie per inviare notifiche a un dispositivo e registrare un'app per la ricezione di notifiche.
Connettere l'app all'hub di notifica
Aggiungere Google Play Services al progetto
In Android Studio selezionare Strumenti nel menu e quindi SDK Manager.
Selezionare la versione di destinazione di Android SDK che viene usata nel progetto. Quindi selezionare Mostra i dettagli del pacchetto.
Selezionare API Google, se non è già installato.
Passare alla scheda SDK Tools. Se lo strumento Google Play Services non è già installato, fare clic su Google Play Services come illustrato nell'immagine di seguito. Selezionare Applica per installarlo. Prendere nota del percorso dell'SDK per l'uso in un passaggio successivo.
Se viene visualizzata la finestra di dialogo Confirm Change (Conferma modifica), selezionare OK. Il programma di installazione del componente installa i componenti richiesti. Al termine dell'installazione dei componenti, selezionare Finish (Fine).
Selezionare OK per chiudere la finestra di dialogo Settings for New Projects (Impostazioni per nuovi progetti).
Aggiungere le librerie di Hub di notifica di Azure
Nel file build.gradle per l'app aggiungere le righe seguenti nella sezione dependencies:
implementation 'com.microsoft.azure:notification-hubs-android-sdk-fcm:1.1.4' implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'com.android.volley:volley:1.2.1'
Aggiungere il repository seguente dopo la sezione dependencies:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url 'https://example.io' } } }
Aggiungere il supporto di Google Firebase
Aggiungere il plug-in seguente alla fine del file se non è già presente.
apply plugin: 'com.google.gms.google-services'
Selezionare Sync Now (Sincronizza ora) sulla barra degli strumenti.
Aggiungi codice
Creare un oggetto NotificationHubListener che gestisce l'intercettazione dei messaggi da Hub di notifica di Azure.
public class CustomNotificationListener implements NotificationListener { @override public void onNotificationReceived(Context context, RemoteMessage message) { /* The following notification properties are available. */ Notification notification = message.getNotification(); String title = notification.getTitle(); String body = notification.getBody(); Map<String, String> data = message.getData(); if (message != null) { Log.d(TAG, "Message Notification Title: " + title); Log.d(TAG, "Message Notification Body: " + message); } if (data != null) { for (Map.Entry<String, String> entry : data.entrySet()) { Log.d(TAG, "key, " + entry.getKey() + " value " + entry.getValue()); } } } }
OnCreate
Nel metodo dellaMainActivity
classe aggiungere il codice seguente per avviare il processo di inizializzazione di Hub di notifica al momento della creazione dell'attività:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); NotificationHub.setListener(new CustomNotificationListener()); NotificationHub.start(this.getApplication(), "Hub Name", "Connection-String"); }
Nella barra dei menu di Android Studio selezionare Compila, quindi selezionare Ricompila progetto per assicurarsi che non siano presenti errori nel codice. Se viene visualizzato un errore relativo all'icona ic_launcher , rimuovere l'istruzione seguente dal file AndroidManifest.xml:
android:icon="@mipmap/ic_launcher"
Assicurarsi di disporre di un dispositivo virtuale per l'esecuzione dell'app. Se non è presente, aggiungerne uno nel modo seguente:
Eseguire l'app nel dispositivo selezionato e verificare che venga registrata correttamente con l'hub.
Annotazioni
La registrazione potrebbe non riuscire durante l'avvio iniziale fino a quando non viene chiamato il metodo
onTokenRefresh()
del servizio ID istanza. Un aggiornamento dovrebbe avviare una registrazione corretta con l'hub di notifica.
Invia una notifica di prova
È possibile inviare notifiche push all'hub di notifica dal portale di Azure, come indicato di seguito:
Nella pagina hub di notifica del portale di Azure selezionare Test Send (Invia test) nella sezione Risoluzione dei problemi .
In Piattaforme selezionare Android.
Seleziona Invia. Non verrà visualizzata alcuna notifica nel dispositivo Android, perché nel dispositivo non è stata ancora eseguita l'app per dispositivi mobili. Dopo aver eseguito l'app per dispositivi mobili, selezionare di nuovo il pulsante Invia per visualizzare il messaggio di notifica.
Vedere il risultato dell'operazione nell'elenco nella parte inferiore della pagina del portale.
Il messaggio di notifica viene visualizzato nel dispositivo.
Le notifiche push vengono in genere inviate in un servizio back-end, ad esempio App per dispositivi mobili o ASP.NET usando una libreria compatibile. Se non è disponibile una libreria per il back-end è anche possibile usare direttamente l'API REST per inviare messaggi di notifica.
Eseguire l'app per dispositivi mobili nell'emulatore
Prima di testare le notifiche push all'interno dell'emulatore, assicurarsi che l'immagine dell'emulatore supporti il livello Google API scelto per l'app. Se l'immagine non supporta le API Google native, è possibile che venga generata un'eccezione SERVICE_NOT_AVAILABLE .
Assicurarsi anche di avere aggiunto l'account Google all'emulatore in esecuzione in Impostazioni>Account. In caso contrario, i tentativi di registrazione con FCM potrebbero generare un'eccezione AUTHENTICATION_FAILED .
Passaggi successivi
In questa esercitazione è stato usato Firebase Cloud Messaging per trasmettere notifiche a tutti i dispositivi Android registrati nel servizio. Per informazioni sulle procedure per eseguire il push di notifiche a dispositivi specifici, passare all'esercitazione seguente:
Di seguito è riportato un elenco di altre esercitazioni per l'invio di notifiche:
App per dispositivi mobili di Azure: per un esempio di come inviare notifiche da un back-end di app per dispositivi mobili integrato con Hub di notifica, vedere Aggiungere notifiche push all'app iOS.
ASP.NET: usare Hub di notifica per inviare notifiche push agli utenti.
Azure Notification Hubs Java SDK: vedere Come usare Hub di notifica da Java per l'invio di notifiche da Java. È stato testato in Eclipse per lo sviluppo per Android.