Introduzione ad Hub di notifica tramite BaiduGet started with Notification Hubs using Baidu

Baidu cloud push è un servizio cloud cinese che consente di inviare notifiche push ai dispositivi mobili.Baidu cloud push is a Chinese cloud service that you can use to send push notifications to mobile devices.

Dato che Google Play e FCM (Firebase Cloud Messaging) non sono disponibili in Cina, è necessario usare app store e servizi push diversi.As Google Play and FCM (Firebase Cloud Messaging) are not available in China, it is necessary to use different app stores and push services. Uno di questi è Baidu, attualmente usato da Hub di notifica.Baidu is one of them, and the one currently used by Notification Hub.

PrerequisitiPrerequisites

Questa esercitazione richiede:This tutorial requires:

Nota

Per completare l'esercitazione, è necessario disporre di un account Azure attivo.To complete this tutorial, you must have an active Azure account. Se non si dispone di un account, è possibile creare un account di valutazione gratuita in pochi minuti.If you don't have an account, you can create a free trial account in just a couple of minutes. Per informazioni dettagliate, vedere la pagina relativa alla versione di valutazione gratuita di Azure.For details, see Azure Free Trial.

Creare un account BaiduCreate a Baidu account

Per usare Baidu, è necessario un account Baidu.To use Baidu, you must have a Baidu account. Se è già disponibile un account, accedere al portale di Baidu e procedere al passaggio successivo.If you already have one, log in to the [Baidu portal] and skip to the next step. In caso contrario, vedere le istruzioni seguenti sulla creazione di un account Baidu.Otherwise, see the following instructions on how to create a Baidu account.

  1. Andare al portale di Baidu e fare clic sul collegamento 登录 (Accedi).Go to the [Baidu portal] and click the 登录 (Login) link. Fare clic su 立即注册 (Esegui registrazione) per avviare il processo di registrazione dell'account.Click 立即注册 (Register Now) to start the account registration process.

    Registrazione a Baidu

  2. Immettere i dettagli necessari, ossia numero di telefono/indirizzo di posta elettronica, password e codice di verifica, e fare clic su 注册 (Iscrizione).Enter the required details—phone/email address, password, and verification code—and click 注册 (Signup).

    Input per la registrazione a Baidu

  3. Si riceverà un messaggio di posta elettronica all'indirizzo specificato, con un collegamento per l'attivazione dell'account Baidu.You are sent an email to the email address that you entered with a link to activate your Baidu account.

    Conferma della registrazione a Baidu

  4. Accedere all'account di posta elettronica, aprire il messaggio per l'attivazione di Baidu e fare clic sul collegamento per attivare l'account.Log in to your email account, open the Baidu activation mail, and click the activation link to activate your Baidu account.

    Messaggio di posta elettronica per l'attivazione di Baidu

Dopo l'attivazione di un account Baidu, accedere al portale di Baidu.Once you have an activated Baidu account, log in to the [Baidu portal].

Creare un progetto di Baidu cloud pushCreate a Baidu cloud push project

Quando si crea un progetto di Baidu cloud push, si ricevono l'ID dell'app, la chiave API e la chiave privata.When you create a Baidu cloud push project, you receive your app ID, API key, and secret key.

  1. Dopo avere effettuato l'accesso al portale di Baidu, fare clic su 更多>> (altro).Once you have logged in to the [Baidu portal], click 更多>> (more).

    Registrazione: altro

  2. Scorrere verso il basso la sezione 站长与开发者服务 (Servizi per webmaster e sviluppatori) e fare clic su 百度云推送 (Push cloud Baidu).Scroll down in the 站长与开发者服务 (Webmaster and Developer Services) section and click 百度云推送 (Baidu Cloud Push).

    Piattaforma cloud aperta Baidu

  3. Nella pagina successiva fare clic su 登录 (Accedi) nell'angolo superiore destro.On the next page, click 登录 (Login) on the top-right corner.

    Accesso a Baidu

  4. Nella pagina visualizzata fare quindi clic su 创建应用 (Crea applicazione).Then, click 创建应用 (Create Application) on this page.

    Creazione di un'applicazione in Baidu

  5. Nella pagina successiva fare clic su 创建新应用 (Crea nuova applicazione).On the next page, click 创建新应用 (Create New Application).

    Creazione di una nuova applicazione in Baidu

  6. Immettere un nome di applicazione e fare clic su 创建 (Crea).Enter an application name and click 创建 (Create).

  7. Al termine della creazione di un progetto push cloud Baidu viene visualizzata una pagina con l'AppID, la chiave API e la chiave privata.Upon successful creation of a Baidu cloud push project, you see a page with AppID, API Key, and Secret Key. Prendere nota della chiave API e della chiave privata, che verranno usate più avanti.Make a note of the API key and secret key, which we use later.

    Segreti push Baidu

  8. Configurare il progetto per le notifiche push facendo clic su 创建通知 (Crea notifica) nel riquadro sinistro.Configure the project for push notifications by clicking 创建通知 (Create Notification) on the left pane.

Configurare un nuovo hub di notificaConfigure a new notification hub

  1. Accedere al portale di Azure.Sign in to the Azure portal.

  2. Selezionare Nuovo > Web e dispositivi mobili > Hub di notifica.Select New > Web + Mobile > Notification Hub.

    Portale di Azure: creare un hub di notifica

  3. Nella casella Hub di notifica digitare un nome univoco.In the Notification Hub box, type a unique name. Selezionare l'area, la sottoscrizione e il gruppo di risorse (se già disponibili).Select your Region, Subscription, and Resource Group (if you have one already).

    Se si ha già un spazio dei nomi del bus di servizio in cui si vuole creare l'hub, seguire questa procedura:If you already have a service bus namespace that you want to create the hub in, do the following:

    a.a. Nell'area Spazio dei nomi selezionare il collegamento Seleziona esistente.In the Namespace area, select the Select Existing link.

    b.b. Selezionare Crea.Select Create.

    Se non si ha già uno spazio dei nomi del bus di servizio, è possibile usare il nome predefinito, che viene creato in base al nome dell'hub (se lo spazio dei nomi è disponibile).If you don't already have a service bus namespace, you can use the default name, which is created based on the hub name (if the namespace name is available).

    Portale di Azure: impostare le proprietà dell'hub di notifica

    Dopo avere creato lo spazio dei nomi e l'hub di notifica, viene aperto il portale di Azure.After you've created the namespace and notification hub, the Azure portal opens.

    Portale di Azure: pagina del portale dell'hub di notifica

  4. Selezionare Impostazioni > Criteri di accesso.Select Settings > Access Policies. Prendere nota delle due stringhe di connessione disponibili.Note the two connection strings that are available to you. Saranno necessarie in un secondo momento per gestire le notifiche push.You will need them to handle push notifications later.

    Portale di Azure: stringhe di connessione dell'hub di notifica

  6.  6. Nell'hub di notifica selezionare Servizi di notifica e quindi Baidu (Android China).In your notification hub, select Notification Services and then Baidu (Android China).

  Hub di notifica di Azure: Baidu

  7.  7. Scorrere verso il basso fino alla sezione Impostazioni di notifica Baidu.Scroll down to the Baidu notification settings section. Immettere la chiave API e la chiave privata ottenute dalla console di Baidu nel progetto push cloud Baidu.Enter the API key and secret key that you obtained from the Baidu console, in the Baidu cloud push project. Fare quindi clic su Salva.Then click Save.

  Hub di notifica di Azure: segreti Baidu

L'hub di notifica è ora configurato per l'uso di Baidu.Your notification hub is now configured to work with Baidu. Sono anche disponibili le stringhe di connessione per registrare l'app sia per l'invio che per la ricezione di notifiche push.You also have the connection strings to register your app to both send and receive push notifications.

Prendere nota dei valori di DefaultListenSharedAccessSignature e DefaultFullSharedAccessSignature nella finestra Accedi a informazioni di connessione.Make a note of the DefaultListenSharedAccessSignature and DefaultFullSharedAccessSignature from the Access connection information window.

Connettere l'app all'hub di notificaConnect your app to the notification hub

  1. In Android Studio creare un nuovo progetto Android scegliendo File > New (Nuovo) > New Project (Nuovo progetto).In Android Studio, create a new Android project (File > New > New Project).

    Hub di notifica di Azure: nuovo progetto Baidu

  2. Immettere un nome di applicazione e assicurarsi che la versione minima richiesta dell'SDK sia impostata su API 16: Android 4.1.Enter an Application Name and ensure that the Minimum Required SDK version is set to API 16: Android 4.1. Verificare anche che il nome del pacchetto (应用包名) sia lo stesso riportato nel portale del servizio push cloud Baidu.Also please make sure your package name (应用包名) is the same as in the Baidu Cloud Push Portal

    Hub di notifica di Azure: versione minima SDK per Baidu - 1 Hub di notifica di Azure: versione minima SDK per Baidu - 2Azure Notification Hubs - Baidu Min SDK1 Azure Notification Hubs - Baidu Min SDK2

  3. Fare clic su Next (Avanti) e continuare la procedura guidata fino alla visualizzazione della finestra per la creazione di un'attività.Click Next and continue following the wizard until the Create Activity window appears. Verificare che sia selezionata l'opzione Empy Activity (Attività vuota) e infine scegliere Finish (Fine) per creare una nuova applicazione Android.Make sure that Empty Activity is selected, and finally select Finish to create a new Android Application.

    Hub di notifica di Azure: aggiunta attività per Baidu

  4. Assicurarsi che l'opzione Project Build Target (Destinazione build progetto) sia impostata correttamente.Make sure that the Project Build Target is set correctly.

  5. Aggiungere quindi le librerie di Hub di notifica di Azure.Then add Azure Notification Hubs libraries. Nel file Build.Gradle relativo all'app aggiungere le righe seguenti alla sezione dependencies.In the Build.Gradle file for the app, add the following lines in the dependencies section.

    compile 'com.microsoft.azure:notification-hubs-android-sdk:0.4@aar'
    compile 'com.microsoft.azure:azure-notifications-handler:1.0.1@aar'
    

    Aggiungere il repository seguente dopo la sezione dependencies.Add the following repository after the dependencies section.

    repositories {
        maven {
            url "http://dl.bintray.com/microsoftazuremobile/SDK"
        }
    }
    

    Per evitare il conflitto a livello di elenco, è necessario aggiungere il codice seguente in Manifest.xml:In order to avoid the List conflict, we need to add following code in Manifest.xml.

    <manifest package="YOUR.PACKAGE.NAME"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android">
    

    e nel tag <application/>:and in the <application/> tag:

    <application
        tools:replace="android:allowBackup,icon,theme,label">
    
  6. Scaricare e decomprimere Baidu Push Android SDK.Download and unzip the Baidu Push Android SDK. Copiare il file pushservice-x.y.z jar nella cartella libs.Copy the pushservice-x.y.z jar file in the libs folder. Copiare quindi i file .so nelle cartelle src/main/jniLibs dell'applicazione Android, creando una nuova cartella.Then copy the .so files in the src/main/jniLibs (create a new folder) folders of your Android application.

    Hub di notifica di Azure: librerie Baidu SDK

  7. Fare clic con il pulsante destro del mouse sul file pushervice-x.y.z.jar nella cartella libs e quindi scegliere Add as Library (Aggiungi come libreria) per includere questa libreria nel progetto.Right click on pushervice-x.y.z.jar file in libs folder, click Add as Library to including this lib into project.

    Hub di notifica di Azure: aggiunta come libreria per Baidu

  8. Aprire il file AndroidManifest.xml del progetto Android e aggiungere le autorizzazioni necessarie per Baidu SDK.Open the AndroidManifest.xml file of your Android project and add the permissions that are required by the Baidu SDK. Sostituire YOURPACKAGENAME con il nome del pacchetto.Replace YOURPACKAGENAME with your package name.

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" />
    <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
    !! <uses-permission android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.YOURPACKAGENAME" />
    !!<permission android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.YOURPACKAGENAME"android:protectionLevel="normal" />
    
  9. Aggiungere la configurazione seguente nell'elemento application dopo l'elemento di attività .MainActivity, sostituendo yourprojectname (ad esempio, com.example.BaiduTest):Add the following configuration within the application element after the .MainActivity activity element, replacing yourprojectname (for example, com.example.BaiduTest):

    <activity
        android:name="com.baidu.android.pushservice.richmedia.MediaViewActivity"
        android:configChanges="orientation|keyboardHidden"
        android:label="MediaViewActivity" />
    <activity
        android:name="com.baidu.android.pushservice.richmedia.MediaListActivity"
        android:configChanges="orientation|keyboardHidden"
        android:label="MediaListActivity"
        android:launchMode="singleTask" />
    
    <!-- Push application definition message -->
    <receiver android:name=".MyPushMessageReceiver">
        <intent-filter>
    
            <!-- receive push message-->
            <action android:name="com.baidu.android.pushservice.action.MESSAGE" />
            <!-- receive bind,unbind,fetch,delete.. message-->
            <action android:name="com.baidu.android.pushservice.action.RECEIVE" />
            <action android:name="com.baidu.android.pushservice.action.notification.CLICK" />
        </intent-filter>
    </receiver>
    
    <receiver
        android:name="com.baidu.android.pushservice.PushServiceReceiver"
        android:process=":bdservice_v1">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            <action android:name="com.baidu.android.pushservice.action.notification.SHOW" />
            <action android:name="com.baidu.android.pushservice.action.media.CLICK" />
            <action android:name="android.intent.action.MEDIA_MOUNTED" />
            <action android:name="android.intent.action.USER_PRESENT" />
            <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
            <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
        </intent-filter>
    </receiver>
    
    <receiver
        android:name="com.baidu.android.pushservice.RegistrationReceiver"
        android:process=":bdservice_v1">
        <intent-filter>
            <action android:name="com.baidu.android.pushservice.action.METHOD" />
            <action android:name="com.baidu.android.pushservice.action.BIND_SYNC" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_REMOVED" />
    
            <data android:scheme="package" />
        </intent-filter>
    </receiver>
    
    <service
        android:name="com.baidu.android.pushservice.PushService"
        android:exported="true"
        android:process=":bdservice_v1">
        <intent-filter>
            <action android:name="com.baidu.android.pushservice.action.PUSH_SERVICE" />
        </intent-filter>
    </service>
    
    <service
        android:name="com.baidu.android.pushservice.CommandService"
        android:exported="true" />
    
    <!-- Adapt the ContentProvider declaration required for the Android N system, and the write permissions include the application package name-->
    <provider
        android:name="com.baidu.android.pushservice.PushInfoProvider"
        android:authorities="com.baidu.push.example.bdpush"
        android:exported="true"
        android:protectionLevel="signature"
        android:writePermission="baidu.push.permission.WRITE_PUSHINFOPROVIDER. yourprojectname  " />
    
    <!-- API Key of the Baidu application -->
    <meta-data
        android:name="api_key"
        !!   android:value="api_key" />
    </application>
    
  10. Aggiungere una nuova classe denominata ConfigurationSettings.java al progetto.Add a new class called ConfigurationSettings.java to the project.

    public class ConfigurationSettings {
        public static String API_KEY = "...";
        public static String NotificationHubName = "...";
        public static String NotificationHubConnectionString = "...";
    }
    

    Impostare il valore della stringa API_KEY con il valore API_KEY del progetto cloud Baidu.Set the value of the API_KEY string with the API_KEY from the Baidu Cloud Project.

    Impostare il valore della stringa NotificationHubName con il nome dell'hub di notifica nel portale di Azure e quindi NotificationHubConnectionString con il valore di DefaultListenSharedAccessSignature riportato nel portale di Azure.Set the value of the NotificationHubName string with your notification hub name from the [Azure portal]; and then NotificationHubConnectionString with DefaultListenSharedAccessSignature from the [Azure portal].

  11. Aprire MainActivity.java e aggiungere quanto segue al metodo onCreate:Open MainActivity.java, and add the following to the onCreate method:

    PushManager.startWork(this, PushConstants.LOGIN_TYPE_API_KEY,  API_KEY );
    
  12. Aggiungere una nuova classe denominata MyPushMessageReceiver.java e aggiungervi il codice seguente.Add a new class called MyPushMessageReceiver.java, and add the following code to it. Questa è la classe che gestisce le notifiche push ricevute dal server push di Baidu.It is the class that handles the push notifications that are received from the Baidu push server.

    package your.package.name;
    
    import android.content.Context;
    import android.content.Intent;
    import android.os.AsyncTask;
    import android.text.TextUtils;
    import android.util.Log;
    
    import com.baidu.android.pushservice.PushMessageReceiver;
    import com.microsoft.windowsazure.messaging.NotificationHub;
    import org.json.JSONException;
    import org.json.JSONObject;
    
    import java.util.List;
    
    public class MyPushMessageReceiver extends PushMessageReceiver {
    
        public static final String TAG = MyPushMessageReceiver.class
                .getSimpleName();
        public static NotificationHub hub = null;
        public static String mChannelId, mUserId;
    
        @Override
        public void onBind(Context context, int errorCode, String appid,
                        String userId, String channelId, String requestId) {
            String responseString = "onBind errorCode=" + errorCode + " appid="
                    + appid + " userId=" + userId + " channelId=" + channelId
                    + " requestId=" + requestId;
            Log.d(TAG, responseString);
    
            if (errorCode == 0) {
                // Binding successful
                Log.d(TAG, " Binding successful");
            }
            try {
                if (hub == null) {
                    hub = new NotificationHub(
                            ConfigurationSettings.NotificationHubName,
                            ConfigurationSettings.NotificationHubConnectionString,
                            context);
                    Log.i(TAG, "Notification hub initialized");
                }
            } catch (Exception e) {
                Log.e(TAG, e.getMessage());
            }
            mChannelId = channelId;
            mUserId = userId;
    
            registerWithNotificationHubs();
        }
        private void registerWithNotificationHubs() {
    
            new AsyncTask<Void, Void, Void>() {
                @Override
                protected Void doInBackground(Void... params) {
                    try {
                        hub.registerBaidu(mUserId, mChannelId);
                        Log.i(TAG, "Registered with Notification Hub - '"
                                + ConfigurationSettings.NotificationHubName + "'"
                                + " with UserId - '"
                                + mUserId + "' and Channel Id - '"
                                + mChannelId + "'");
                    } catch (Exception e) {
                        Log.e(TAG, e.getMessage());
                    }
                    return null;
                }
            }.execute(null, null, null);
        }
    
        @Override
        public void onMessage(Context context, String message,
                            String customContentString) {
            String messageString = " onMessage=\"" + message
                    + "\" customContentString=" + customContentString;
            Log.d(TAG, messageString);
            if (!TextUtils.isEmpty(customContentString)) {
                JSONObject customJson = null;
                try {
                    customJson = new JSONObject(customContentString);
                    String myvalue = null;
                    if (!customJson.isNull("mykey")) {
                        myvalue = customJson.getString("mykey");
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
    
        }
    
        @Override
        public void onNotificationArrived(Context context, String title, String description, String customContentString) {
            String notifyString = " Notice Arrives onNotificationArrived  title=\"" + title
                    + "\" description=\"" + description + "\" customContent="
                    + customContentString;
            Log.d(TAG, notifyString);
            if (!TextUtils.isEmpty(customContentString)) {
                JSONObject customJson = null;
                try {
                    customJson = new JSONObject(customContentString);
                    String myvalue = null;
                    if (!customJson.isNull("mykey")) {
                        myvalue = customJson.getString("mykey");
                    }
                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    
        @Override
        public void onNotificationClicked(Context context, String title, String description, String customContentString) {
            String notifyString = " onNotificationClicked title=\"" + title + "\" description=\""
                    + description + "\" customContent=" + customContentString;
            Log.d(TAG, notifyString);
            Intent intent = new Intent(context.getApplicationContext(),MainActivity.class);
            intent.putExtra("title",title);
            intent.putExtra("description",description);
            intent.putExtra("isFromNotify",true);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.getApplicationContext().startActivity(intent);
    
        }
    
        @Override
        public void onSetTags(Context context, int errorCode,
                            List<String> successTags, List<String> failTags, String requestId) {
            String responseString = "onSetTags errorCode=" + errorCode
                    + " successTags=" + successTags + " failTags=" + failTags
                    + " requestId=" + requestId;
            Log.d(TAG, responseString);
    
        }
    
        @Override
        public void onDelTags(Context context, int errorCode,
                            List<String> successTags, List<String> failTags, String requestId) {
            String responseString = "onDelTags errorCode=" + errorCode
                    + " successTags=" + successTags + " failTags=" + failTags
                    + " requestId=" + requestId;
            Log.d(TAG, responseString);
    
        }
    
        @Override
        public void onListTags(Context context, int errorCode, List<String> tags,
                            String requestId) {
            String responseString = "onListTags errorCode=" + errorCode + " tags="
                    + tags;
            Log.d(TAG, responseString);
    
        }
    
        @Override
        public void onUnbind(Context context, int errorCode, String requestId) {
            String responseString = "onUnbind errorCode=" + errorCode
                    + " requestId = " + requestId;
            Log.d(TAG, responseString);
    
            if (errorCode == 0) {
                // Unbinding is successful
                Log.d(TAG, " Unbinding is successful ");
            }
        }
    }
    

Invio di notifiche all'appSend notifications to your app

È possibile testare rapidamente la ricezione delle notifiche dal portale di Azure usando il pulsante Invia nella schermata di configurazione dell'hub di notifica, come illustrato nelle schermate seguenti:You can quickly test receiving notifications from the [Azure portal]: use the Send button in the notification hub configuration screen, as shown in the following screens:

Le notifiche push vengono in genere inviate in un servizio back-end come Servizi mobili o ASP.NET usando una libreria compatibile.Push notifications are normally sent in a back-end service like Mobile Services or ASP.NET using a compatible library. Se non è disponibile una libreria per il back-end, è possibile usare direttamente l'API REST per inviare messaggi di notifica.If a library is not available for your back-end, you can use the REST API directly to send notification messages.

Per semplicità, in questa esercitazione viene usata un'app console per dimostrare come inviare una notifica con .NET SDK.For simplicity, this tutorial uses a console app as a demonstration on how to send a notification with the .NET SDK. Come passaggio successivo per l'invio di notifiche da un back-end ASP.NET, tuttavia, è consigliabile vedere l'esercitazione relativa all'uso di Hub di notifica per eseguire il push di notifiche agli utenti.However, we recommend the Use Notification Hubs to push notifications to users tutorial as the next step for sending notifications from an ASP.NET backend.

Per l'invio di notifiche sono disponibili i diversi approcci riportati di seguito.Here are different approaches for sending notifications:

(Facoltativo) Inviare notifiche da un'app console .NET(Optional) Send notifications from a .NET console app.

In questa sezione verrà illustrato come inviare notifiche con un'app console .NET.In this section, we show sending a notification using a .NET console app.

  1. Creare una nuova applicazione console in Visual C#:Create a new Visual C# console application:

  2. Nella finestra Console di Gestione pacchetti impostare Progetto predefinito sul nuovo progetto di applicazione console, quindi eseguire il comando seguente nella finestra della console:In the Package Manager Console window, set the Default project to your new console application project, and then in the console window, execute the following command:

     Install-Package Microsoft.Azure.NotificationHubs
    

    Questa istruzione aggiunge un riferimento ad Azure Notification Hubs SDK mediante il pacchetto NuGet Microsoft.Azure.NotificationHubs.This instruction adds a reference to the Azure Notification Hubs SDK using the Microsoft.Azure.Notification Hubs NuGet package.

  3. Aprire il file Program.cs e aggiungere l'istruzione using seguente:Open the file Program.cs and add the following using statement:

    using Microsoft.Azure.NotificationHubs;
    
  4. Nella classe Program aggiungere il metodo seguente e sostituire DefaultFullSharedAccessSignatureSASConnectionString e NotificationHubName con i valori effettivi.In your Program class, add the following method and replace DefaultFullSharedAccessSignatureSASConnectionString and NotificationHubName with the values that you have.

    private static async void SendNotificationAsync()
    {
        NotificationHubClient hub = NotificationHubClient.CreateClientFromConnectionString("DefaultFullSharedAccessSignatureSASConnectionString", "NotificationHubName");
        string message = "{\"title\":\"((Notification title))\",\"description\":\"Hello from Azure\"}";
        var result = await hub.SendBaiduNativeNotificationAsync(message);
    }
    
  5. Aggiungere le righe seguenti nel metodo Main :Add the following lines in your Main method:

    SendNotificationAsync();
    Console.ReadLine();
    

Test dell'appTest your app

Per testare l'app con un telefono effettivo, collegare il telefono al computer con un cavo USB.To test this app with an actual phone, just connect the phone to your computer by using a USB cable. Questa azione carica l'app nel telefono collegato.This action loads your app onto the attached phone.

Per testare l'app con l'emulatore, sulla barra degli strumenti superiore di Android Studio fare clic su Run (Esegui) e quindi selezionare l'app. Verrà avviato l'emulatore e verrà caricata ed eseguita l'app.To test this app with the emulator, on the Android Studio top toolbar, click Run, and then select your app: it starts the emulator, loads, and runs the app.

L'app recupera userId e channelId dal servizio di notifica push di Baidu ed esegue la registrazione nell'hub di notifica.The app retrieves the userId and channelId from the Baidu Push notification service and registers with the notification hub.

Per inviare una notifica di test, è possibile usare la scheda Debug del portale di Azure.To send a test notification, you can use the debug tab of the [Azure portal]. Se è stata compilata l'applicazione console .NET per Visual Studio, è sufficiente premere F5 in Visual Studio per eseguirla.If you built the .NET console application for Visual Studio, just press the F5 key in Visual Studio to run the application. L'applicazione invia una notifica che viene visualizzata nell'area di notifica superiore del dispositivo o dell'emulatore.The application sends a notification that appears in the top notification area of your device or emulator.