Push-облако Baidu — это китайская облачная служба, которую можно использовать для отправки push-уведомлений на мобильные устройства.Baidu cloud push is a Chinese cloud service that you can use to send push notifications to mobile devices.

Так как Google Play и FCM (Firebase Cloud Messaging) в Китае недоступны, необходимо использовать различные магазины приложений и службы push-уведомлений.As Google Play and FCM (Firebase Cloud Messaging) are not available in China, it is necessary to use different app stores and push services. Baidu — одна из них. Именно она сейчас используется в центре уведомлений.Baidu is one of them, and the one currently used by Notification Hub.

предварительным требованиямPrerequisites

Для работы с руководством требуется следующее:This tutorial requires:

Примечание

Для работы с этим учебником необходима активная учетная запись Azure.To complete this tutorial, you must have an active Azure account. Если ее нет, можно создать бесплатную пробную учетную запись всего за несколько минут.If you don't have an account, you can create a free trial account in just a couple of minutes. Дополнительные сведения см. в разделе Бесплатная пробная версия Azure.For details, see Azure Free Trial.

Создание учетной записи BaiduCreate a Baidu account

Чтобы использовать Baidu, необходимо иметь учетную запись Baidu.To use Baidu, you must have a Baidu account. Если она у вас уже есть, войдите на портал Baidu и перейдите к следующему шагу.If you already have one, log in to the [Baidu portal] and skip to the next step. В противном случае создайте учетную запись Baidu, следуя приведенным ниже инструкциям.Otherwise, see the following instructions on how to create a Baidu account.

  1. Откройте портал Baidu и перейдите по ссылке 登录 (Вход).Go to the [Baidu portal] and click the 登录 (Login) link. Щелкните 立即注册 (Зарегистрироваться сейчас), чтобы начать процесс регистрации учетной записи.Click 立即注册 (Register Now) to start the account registration process.

    Регистрация Baidu

  2. Введите требуемые сведения — номер телефона и/или адрес электронной почты, пароль и код подтверждения, — а затем нажмите кнопку 注册 (Зарегистрироваться).Enter the required details—phone/email address, password, and verification code—and click 注册 (Signup).

    Выходные данные регистрации Baidu

  3. На указанный вами адрес электронной почты будет отправлено сообщение со ссылкой для активации учетной записи Baidu.You are sent an email to the email address that you entered with a link to activate your Baidu account.

    Подтверждение регистрации Baidu

  4. Войдите в свой почтовый ящик, откройте это сообщение и перейдите по ссылке, чтобы активировать учетную запись Baidu.Log in to your email account, open the Baidu activation mail, and click the activation link to activate your Baidu account.

    Электронное сообщение об активация Baidu

После активации войдите на портал Baiduс помощью созданной учетной записи.Once you have an activated Baidu account, log in to the [Baidu portal].

Создание облачного push-проекта BaiduCreate a Baidu cloud push project

Во время создания push-проекта Baidu вы получите код приложения, ключ API и секретный ключ.When you create a Baidu cloud push project, you receive your app ID, API key, and secret key.

  1. После входа на портал Baidu щелкните 更多>> (Дополнительно).Once you have logged in to the [Baidu portal], click 更多>> (more).

    Регистрация, "Дополнительно"

  2. Прокрутите вниз раздел 站长与开发者服务 (Службы для веб-мастеров и разработчиков) и щелкните 百度云推送 (Служба push-уведомлений облака Baidu).Scroll down in the 站长与开发者服务 (Webmaster and Developer Services) section and click 百度云推送 (Baidu Cloud Push).

    Открытая облачная платформа Baidu

  3. На следующей странице щелкните 登录 (Вход) в правом верхнем углу.On the next page, click 登录 (Login) on the top-right corner.

    Вход в Baidu

  4. Затем щелкните 创建应用 (Создание приложения) на этой странице.Then, click 创建应用 (Create Application) on this page.

    Создание приложения Baidu

  5. На следующей странице щелкните 创建新应用 (Создание нового приложения).On the next page, click 创建新应用 (Create New Application).

    Создание приложения Baidu

  6. Введите имя приложения и щелкните 创建 (Создать).Enter an application name and click 创建 (Create).

  7. После успешного создания проекта службы push-уведомлений облака Baidu отобразится страница с идентификатором приложения, ключом API и секретным ключом.Upon successful creation of a Baidu cloud push project, you see a page with AppID, API Key, and Secret Key. Запишите ключ API и секретный ключ, которые будут использоваться позже.Make a note of the API key and secret key, which we use later.

    Секреты push-уведомлений Baidu

  8. Настройте проект для отправки push-уведомлений, щелкнув 创建通知 (Создать уведомление) на панели слева.Configure the project for push notifications by clicking 创建通知 (Create Notification) on the left pane.

Настройка нового центра уведомленийConfigure a new notification hub

  1. Войдите на портале Azure.Sign in to the Azure portal.

  2. Последовательно выберите Создать ресурс > Интернет и мобильные устройства > Концентратор уведомлений.Select Create a resource > Web + Mobile > Notification Hub.

    Портал Azure: создание центра уведомлений

  3. В поле Центр уведомлений введите уникальное имя.In the Notification Hub box, type a unique name. Выберите регион, подписку и группу ресурсов (если она уже создана).Select your Region, Subscription, and Resource Group (if you have one already).

    Если у вас нет пространства имен служебной шины, можно использовать имя по умолчанию. Оно создается на основе имени концентратора (если имя пространства имен доступно).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).

    Если у вас уже есть пространство имен служебной шины, в котором требуется создать концентратор, сделайте следующее:If you already have a service bus namespace that you want to create the hub in, follow these steps

    a.a. В области Пространство имен выберите ссылку Выбрать существующее.In the Namespace area, select the Select Existing link.

    Б.b. Нажмите кнопку Создать.Select Create.

    Портал Azure: настройка свойств концентратора уведомлений

  4. Когда вы создадите пространство имен и концентратор уведомлений, откройте его. Для этого нажмите All resources (Все ресурсы) и выберите в списке созданный концентратор уведомлений.After you've created the namespace and notification hub, open it by selecting All resources and then select the created notification hub from the list.

    Портал Azure: страница портала концентратора уведомлений

  5. Выберите Политики доступа в списке.Select Access Policies from the list. Запишите две строки подключения, которые отобразятся.Note the two connection strings that are available to you. Они требуются для дальнейшей обработки push-уведомлений.You need them to handle push notifications later.

    Важно!

    НЕ используйте в приложении DefaultFullSharedAccessSignature.Do NOT use the DefaultFullSharedAccessSignature in your application. Этот параметр можно использовать только в серверной части.This is meant to be used in your back-end only.

    Портал Azure: строки подключения к концентратору уведомлений

  6.  6. В центре уведомлений выберите Службы уведомлений и затем Baidu (Android China).In your notification hub, select Notification Services and then Baidu (Android China).

  Центры уведомлений Azure — Baidu

  7.  7. Прокрутите до раздела параметров уведомлений Baidu.Scroll down to the Baidu notification settings section. Введите ключ API и секретный ключ, полученный из консоли Baidu, в проекте службы push-уведомлений облака Baidu.Enter the API key and secret key that you obtained from the Baidu console, in the Baidu cloud push project. Нажмите кнопку "Сохранить".Then click Save.

  Центры уведомлений Azure — секреты Baidu

Теперь центр уведомлений настроен для работы с Baidu.Your notification hub is now configured to work with Baidu. Имеются также строки подключения для регистрации приложения на отправку и получение push-уведомлений.You also have the connection strings to register your app to both send and receive push notifications.

Запишите DefaultListenSharedAccessSignature и DefaultFullSharedAccessSignature из окна сведений о подключении доступа.Make a note of the DefaultListenSharedAccessSignature and DefaultFullSharedAccessSignature from the Access connection information window.

Подключение приложения к центру уведомленийConnect your app to the notification hub

  1. В Android Studio создайте проект Android (File > New > New Project) (Файл > Создать > Создать проект).In Android Studio, create a new Android project (File > New > New Project).

    Центры уведомлений Azure — создание проекта Baidu

  2. Введите имя приложения и убедитесь, что для параметра Минимальная требуемая версия пакета SDK указано значение 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. Кроме того, убедитесь, что имя вашего пакета (应用包名) совпадает с именем на портале службы push-уведомлений облака Baidu.Also please make sure your package name (应用包名) is the same as in the Baidu Cloud Push Portal

    Центры уведомлений Azure — Baidu Min SDK1 Центры уведомлений Azure — Baidu Min SDK2Azure Notification Hubs - Baidu Min SDK1 Azure Notification Hubs - Baidu Min SDK2

  3. Нажмите кнопку "Далее" и следуйте указаниям мастера до появления окна "Создать действие".Click Next and continue following the wizard until the Create Activity window appears. Выберите элемент Empty Activity (Пустое действие) и нажмите кнопку "Готово", чтобы создать приложение Android.Make sure that Empty Activity is selected, and finally select Finish to create a new Android Application.

    Центры уведомлений Azure — добавление действия Baidu

  4. Убедитесь, что значение параметра Project Build Target (Целевая сборка проекта) задано правильно.Make sure that the Project Build Target is set correctly.

  5. Затем добавьте библиотеки Центров уведомлений Azure.Then add Azure Notification Hubs libraries. В файле Build.Gradle в классе app добавьте следующие строки в раздел 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'
    

    После раздела dependencies добавьте следующий репозиторий.Add the following repository after the dependencies section.

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

    Во избежание конфликтов List, необходимо добавить в файл 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">
    

    Кроме того, его следует добавить в тег <application/>:and in the <application/> tag:

    <application
        tools:replace="android:allowBackup,icon,theme,label">
    
  6. Скачайте и распакуйте пакет Android SDK для службы push-уведомлений Baidu.Download and unzip the [Baidu Push Android SDK]. Скопируйте файл pushservice-x.y.z jar в папке libs.Copy the pushservice-x.y.z jar file in the libs folder. Затем скопируйте файл .so в папках src/main/jniLibs (создайте папку) приложения Android.Then copy the .so files in the src/main/jniLibs (create a new folder) folders of your Android application.

    Центры уведомлений Azure — папка libs пакета SDK Baidu

  7. Щелкните правой кнопкой мыши файл pushervice-x.y.z.jar в папке libs и выберите "Добавить как библиотеку", чтобы включить эту библиотеку в проект.Right click on pushervice-x.y.z.jar file in libs folder, click Add as Library to including this lib into project.

    Центры уведомлений Azure — пункт "Добавить как библиотеку" Baidu

  8. Откройте файл AndroidManifest.xml проекта Android и добавьте разрешения, требуемые пакетом SDK для Baidu.Open the AndroidManifest.xml file of your Android project and add the permissions that are required by the Baidu SDK. Замените YOURPACKAGENAME именем своего пакета.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. Добавьте следующую конфигурацию в элементе приложения после элемента действия .MainActivity, заменив yourprojectname собственным значением (например, 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. Добавьте новый класс с именем ConfigurationSettings.java в проект.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 = "...";
    }
    

    Установите для параметра API_KEY строки значение API_KEY из облачного проекта Baidu.Set the value of the API_KEY string with the API_KEY from the Baidu Cloud Project.

    Установите в качестве значения параметра строки NotificationHubName имя центра уведомлений с портале Azure, а затем задайте для NotificationHubConnectionString значение DefaultListenSharedAccessSignature с портале 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. Откройте класс MainActivity.java и добавьте следующий код в метод onCreate.Open MainActivity.java, and add the following to the onCreate method:

    PushManager.startWork(this, PushConstants.LOGIN_TYPE_API_KEY,  API_KEY );
    
  12. Добавьте новый класс MyPushMessageReceiver.java и добавьте в него следующий код.Add a new class called MyPushMessageReceiver.java, and add the following code to it. Это класс, который обрабатывает push-уведомления, полученные от push-сервера 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 ");
            }
        }
    }
    

Отправка уведомлений в приложениеSend notifications to your app

Вы можете быстро проверить получение уведомлений с портале Azure: используйте кнопку Отправить на экране настройки центра уведомлений, как показано на следующих снимках экранов: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:

Push-уведомления обычно отправляются в серверной службе, например мобильными службами или ASP.NET, с помощью совместимой библиотеки.Push notifications are normally sent in a back-end service like Mobile Services or ASP.NET using a compatible library. Если для серверной части библиотека недоступна, можно напрямую использовать REST API для отправки уведомлений.If a library is not available for your back-end, you can use the REST API directly to send notification messages.

Для простоты в этом руководстве используется консольное приложение, демонстрирующее, как отправить уведомление с помощью пакета SDK для .NET.For simplicity, this tutorial uses a console app as a demonstration on how to send a notification with the .NET SDK. Тем не менее в качестве следующего шага по отправке уведомлений с сервера ASP.NET мы рекомендуем ознакомиться с руководством Уведомление пользователей посредством концентраторов уведомлений с помощью серверной части .NET.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.

Ниже приведены различные подходы к отправке уведомлений:Here are different approaches for sending notifications:

(Необязательно) Отправление уведомлений из консольного приложения .NET(Optional) Send notifications from a .NET console app.

В этом разделе мы будем отправлять уведомление, используя консольное приложение .NET.In this section, we show sending a notification using a .NET console app.

  1. Создайте новое консольное приложение Visual C#.Create a new Visual C# console application:

  2. В окне консоли диспетчера пакетов задайте свойство Проект по умолчанию для нового проекта консольного приложения, а затем в окне консоли выполните следующую команду: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
    

    Эта инструкция добавляет ссылку на пакет SDK для центров уведомлений Azure с помощью пакета NuGet Microsoft.Azure.Notification Hubs.This instruction adds a reference to the Azure Notification Hubs SDK using the Microsoft.Azure.Notification Hubs NuGet package.

  3. Откройте файл Program.cs и добавьте следующую инструкцию using:Open the file Program.cs and add the following using statement:

    using Microsoft.Azure.NotificationHubs;
    
  4. Добавьте следующий метод в класс Program и замените DefaultFullSharedAccessSignatureSASConnectionString и NotificationHubName имеющимися значениями.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. Затем добавьте в метод Main следующие строки:Add the following lines in your Main method:

    SendNotificationAsync();
    Console.ReadLine();
    

Тестирование приложенияTest your app

Чтобы проверить работу этого приложения на реальном устройстве, просто подключите телефон к компьютеру с помощью кабеля USB.To test this app with an actual phone, just connect the phone to your computer by using a USB cable. Это действие загрузит приложение на подключенный телефон.This action loads your app onto the attached phone.

Чтобы протестировать это приложение с помощью эмулятора, на верхней панели инструментов Android Studio нажмите кнопку Run (Запуск) и выберите приложение. После этого запустится эмулятор, загрузится и запустится приложение.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.

Приложение получает значения userId и channelId из службы push-уведомлений Baidu с последующей регистрацией в концентраторе уведомлений.The app retrieves the userId and channelId from the Baidu Push notification service and registers with the notification hub.

Тестовые уведомления можно отправлять на вкладке отладки на портале Azure.To send a test notification, you can use the debug tab of the [Azure portal]. Если вы собрали консольное приложение .NET для Visual Studio, нажмите клавишу F5 в Visual Studio для запуска приложения.If you built the .NET console application for Visual Studio, just press the F5 key in Visual Studio to run the application. Приложение отправляет уведомление, которое отображается в верхней части области уведомлений устройства или эмулятора.The application sends a notification that appears in the top notification area of your device or emulator.