Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описываются технические сведения о событии уведомления от мобильного оператора.
Зарегистрировать событие MobileOperatorNotification с помощью метаданных
Определение правил фильтрации в подготовки XML
Полезные данные события
Полезные данные события MobileOperatorNotification включают следующие поля:
Поле | Описание |
---|---|
ТипСообщения | Перечисление сообщения, вызвавшее событие. |
интерфейс | GUID, соответствующий физическому интерфейсу, связанному с событием. |
Тип кодировки | Метод кодирования сообщения, если MessageType — SMS/USSD. |
РазмерДанныхСообщения | Размер сообщения в байтах, если MessageType — SMS/USSD. |
сообщение | Полученное необработанное сообщение, если MessageType — SMS/USSD. |
Событие MobileOperatorNotification позволяет использовать каждый из сценариев, описанных в разделе сценарииев уведомлений мобильных операторов , различая их с помощью поля MessageType, содержащегося в полезной нагрузке события. MessageTypeперечисляются следующим образом:
Перечисление | Тип |
---|---|
0 | GSM SMS |
1 | CDMA SMS |
2 | USSD |
3 | Достигнут пороговый уровень плана данных |
4 | DataPlanReset |
5 | УдалениеПакетаДанных |
6 | ProfileConnected |
7 | Профиль отключён |
8 | Регистриторованный Роуминг |
9 | ЗарегистрированныйДом |
10 | ПроверкаПраваНаМодемныйРежим |
Рабочий элемент, связанный с событием MobileOperatorNotification, должен начинаться с логики, которая эффективно отличает MessageTypeи запускает соответствующий код для каждого сценария.
GSM/CDMA SMS и USSD
Входящее сообщение оператора, включая SMS и USSD, вызывает событие MobileOperatorNotification вместе с соответствующими сообщениями MessageType. Уникальными для этих типов являются EncodingType, MessageDataSizeи Message.
Порог тарифного плана достигнут
По умолчанию этот тип сообщения отключен. Вы можете включить его, используя метаданные конфигурации, чтобы указать поле DataUsageInMobileOperatorNotificationEnabled, как показано здесь.
<?xml version="1.0"?>
<CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
<Global>
<CarrierId>{2c85b76b-f859-47c4-8122-721fe8b6c25f}</CarrierId>
<SubscriberId>012345678901234</SubscriberId>
</Global>
<MBNProfiles>
<DefaultProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1">
<Name>Contoso</Name>
<AssociatedPlan>SamplePlan</AssociatedPlan>
<Context>
<AccessString>Contoso.com</AccessString>
<UserLogonCred>
<UserName>User</UserName>
<Password>[PLACEHOLDER]</Password>
</UserLogonCred>
</Context>
</DefaultProfile>
</MBNProfiles>
<Plans>
<Plan xmlns="http://www.microsoft.com/networking/CarrierControl/Plans/v1" Name="SamplePlan">
<Description PlanType="Fixed">
<DataLimitInMegabytes>500</DataLimitInMegabytes>
<DataUsageInMobileOperatorNotificationEnabled>true</DataUsageInMobileOperatorNotificationEnabled>
</Description>
</Plan>
</Plans>
</CarrierProvisioning>
Дополнительные сведения о метаданных предоставления учетных записей см. в разделе .
Событие генерируется с этой MessageType, когда локальные счетчики данных оценивают, что использование (байты, отправленные и полученные) на мобильном широкополосном интерфейсе изменилось на 5% с момента последнего возникновения, за исключением следующих случаев:
При подключении к домашней сети (не перемещаемой), если ограничение плана данных не указано, это событие активируется каждые 100 МБ локального использования данных.
При подключении к перемещаемой сети ограничение плана данных не применяется, и это событие активируется каждые 5 МБ локального использования данных.
Локальные счетчики данных в Windows 8 обновляются каждые одну минуту; в большинстве случаев это событие создается один раз в минуту во всех описанных сценариях. В Windows 8.1, когда достигается пороговое значение 5%, событие доставляется в реальном времени.
Заметка
Хотя эта информация может служить хорошим основным ориентиром, Windows не может учитывать неоплаченный трафик или использование на других устройствах, которые совместно используют те же лимиты данных (например, семейные планы или переключение SIM-карт). Приложения операторов связи должны использовать локальные счетчики данных только для приблизительной оценки использования с момента последней синхронизации с собственной системой выставления счетов оператора. Для использования данных, которые уже обработаны, система выставления счетов должна считаться авторитетной.
DataPlanReset
На дату сброса плана диспетчер использования данных и подписки (DUSM) сбрасывает текущее локальное использование данных пользователя до нуля.
План данных удалён
Для предоплаченных тарифных планов с фиксированной датой окончания действия DUSM удаляет профиль подключения, связанный с учетной записью, на дату окончания действия, и событие MobileOperatorNotification активируется с использованием этого MessageType. При удалении профиля подключения диспетчер соединений Windows больше не пытается автоматически подключиться к сети, описанной профилем подключения.
ProfileConnected и ProfileDisconnected
Событие MobileOperatorNotification генерируется с помощью этих MessageType, когда диспетчер подключений Windows подключается к сетевому профилю, обеспеченному метаданными об опыте оператора. Это событие активируется при каждом подключении и отключении, включая начальное подключение после выхода из спящего режима. Он также активируется, если устройство уже подключено при скачивании и установке метаданных приложения и службы.
ProfileConnected MessageType активируется при подключении L2 для мобильного широкополосного интерфейса.
Заметка
Этот триггер возникает до завершения идентификации сети. Событие NetworkStatusChanged (часть API NetworkInformation) создается, когда идентификация сети определяет уровень подключения сети. Дополнительные сведения об идентификации сети см. в разделе Краткое руководство по: получению сведений о сетевом подключении и классе NetworkInformation.
RegisteredRoaming и RegisteredHome
Событие MobileOperatorNotification создается с помощью этих MessageTypeпри регистрации диспетчера подключений Windows в перемещаемую сеть. Это событие активируется для каждой регистрации, включая начальную регистрацию после перехода в режим сна/возобновления. Он также активируется, если устройство уже зарегистрировано в сети при скачивании и установке метаданных приложения и службы.
Приложение должно уведомлять пользователя только один раз, когда они регистрируются в перемещаемой сети и один раз, когда они возвращаются в свою домашнюю сеть. Так как это событие активируется при каждой регистрации, приложение отвечает за отслеживание предыдущего зарегистрированного состояния в данных сеанса приложения.
Проверка прав на модем
Событие MobileOperatorNotification создается с помощью этого MessageType, когда пользователь включает общий доступ к Интернету. Событие активируется каждый раз, когда пользователь пытается использовать общий доступ к Интернету, пока мобильный оператор задал элемент AllowTethering в схеме метаданных службы, чтобы EntitlementCheckRequired. Дополнительные сведения о схеме метаданных службы см. в разделе "Справочник по схеме пакета метаданных службы".
Приложение должно запустить соответствующий механизм проверки прав, поддерживаемый сетью мобильных операторов, и отправить результат в систему с помощью метода AuthorizeTethering класса NetworkOperatorNotificationEventDetails в пространстве имен Windows.Networking.NetworkOperators. Если у приложения нет возможности выполнить проверку полномочий, мобильный оператор должен изменить элемент служебных метаданных AllowTethering на Always или Никогда, чтобы событие никогда не создавалось.
Регистрация события MobileOperatorNotification с помощью метаданных
Как правило, приложение должно запускаться пользователем по крайней мере один раз, прежде чем он сможет зарегистрировать рабочие элементы в брокере событий системы. Однако, поскольку события MobileOperatorNotification необходимы для завершения ключевых сценариев мобильного широкополосного подключения, это событие связано с мобильным широкополосным приложением с помощью метаданных службы. В метаданных службы настройте элемент DeviceCompanionApplications.
<DeviceCompanionApplications>
<Package>
<Identity Name="MyOperatorNotification" Publisher="MyCorporation " />
<Applications>
<Application Id="MyOperatorNotification" />
<DeviceNotificationHandlers>
<DeviceNotificationHandler EventID="MobileOperatorNotificationHandler" EventAsset="backgroundtask.js" />
</DeviceNotificationHandlers>
</Applications>
</Package>
</DeviceCompanionApplications>
Атрибут EventID сообщает системе, какой тип события ожидает от устройства. Значение атрибута EventAsset должно указывать на точку входа, реализующую фоновую задачу. Это укажет системе, какую задачу выполнить при возникновении конкретного события.
В этом примере система создает и регистрирует событие, относящееся к этому устройству. Он также регистрирует мобильное широкополосное приложение для данного мероприятия. Приложение должно иметь файл JavaScript с именем backgroundtask.js, который выполняется системой при каждом получении уведомления оператора.
Если мобильное широкополосное приложение написано на C#, событие должно указывать на класс времени выполнения, реализующий интерфейс фонового задания.
<DeviceNotificationHandlers>
<DeviceNotificationHandler EventID="MobileOperatorNotificationHandler" EventAsset="MNOMessageBackground.OperatorNotification" />
Когда метаданные и приложение службы скачиваются, диспетчер установки устройств регистрирует соответствующий рабочий элемент в system Event Broker перед запуском приложения. Сразу после регистрации рабочего элемента, если мобильное широкополосное устройство зарегистрировано или подключено к сети, событие MobileOperatorNotification активируется вместе с соответствующим MessageType.
Изменение регистрации фоновой задачи в метаданных
Если точка входа фоновой задачи изменяется в обновленной версии мобильного широкополосного приложения, необходимо также изменить элемент DeviceNotificationHandler в метаданных службы.
Метаданные службы обновляются автоматически на компьютерах под управлением Windows 8, Windows 8.1 и Windows 10. Мобильные широкополосные приложения обновляются в Microsoft Store. Избегайте изменений в регистрации фоновых задач DeviceNotificationHandler в метаданных службы. Если требуется изменение, метаданные службы должны содержать ссылки на все различные точки входа фоновых задач, используемые во всех поддерживаемых версиях мобильного широкополосного приложения, чтобы сохранить функциональные возможности для пользователей, которые не обновили мобильное широкополосное приложение.
Определение правил фильтрации в XML-файле провизии
Windows принимает файл настройки в формате XML. Здесь показан образец XML для настройки:
<?xml version="1.0" encoding="utf-8"?>
<CarrierProvisioning xmlns="http://www.microsoft.com/networking/CarrierControl/v1">
<Global>
<!-- Adjust the Carrier ID to fit match the Service Number in service metadata. Refer to the documentation about CarrierId. -->
<CarrierId>{11111111-1111-1111-1111-111111111111}</CarrierId>
<!-- Adjust the Subscriber ID. Refer to the documentation about Subscriber ID's. -->
<SubscriberId>1234567890</SubscriberId>
</Global>
<MBNProfiles>
<DefaultProfile xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1">
<!-- Adjust the profile name -->
<Name>Contoso</Name>
<AssociatedPlan>Limited</AssociatedPlan>
<!-- Adjust the home provider name for the given SIM/Device -->
<HomeProviderName>Contoso</HomeProviderName>
<Context>
<!-- Adjust the access string to your APN. -->
<AccessString>Contoso.Contoso</AccessString>
<!-- Adjust the UserLogonCred to fit your UserLogonCred. Refer to the documentation about UserLogonCred's. -->
<UserLogonCred>
<UserName>user</UserName>
<Password>[PLACEHOLDER]</Password>
</UserLogonCred>
</Context>
</DefaultProfile>
<Messages xmlns="http://www.microsoft.com/networking/CarrierControl/WWAN/v1">
<Message RuleId="Sample1" Silent="true">
<SMSBearer ClassZeroOnly="false" Sender="18005551212"/>
<!-- [^]* matches all messages from this sender, regardless of content -->
<Pattern>[^]*</Pattern>
<!-- Because no Fields are specified, this message will be passed to the operator app without parsing. -->
</Message>
<Message RuleId="Sample2" Silent="false">
<!-- Parsing a simple usage message. -->
<USSDBearer/>
<Pattern>(\d+\.\d+)(\w+) of (\d+)(\w+) used as of (\S+)</Pattern>
<!-- Using these field definitions, Windows will automatically update usage data before passing the message
to the operator app. -->
<Units G="GB" M="MB"/>
<Fields>
<!-- These fields are currently unordered, but an order will be required in RC. -->
<Usage Group="1" UnitGroup="2"/>
<UsageTimestamp Group="5" Format="%I:%M%p on %d %b"/>
<DataLimit Group="3" UnitGroup="4"/>
</Fields>
</Message>
</Messages>
</MBNProfiles>
<Provisioning />
</CarrierProvisioning>
Дополнительные сведения о метаданных подготовки учетных записей см. в разделе "Подготовка учетной записи".
Правила для идентификации текстового сообщения в виде сообщения оператора можно определить в этом XML.
Разрешенный отправитель Атрибут "Отправитель" указывает зарезервированный адрес, с которого разрешено получение уведомлений. (Это число должно точно соответствовать номеру отправителя, полученному в SMS-сообщении, включая международный формат).
шаблон регулярное выражение для идентификации и при необходимости извлечения полей данных из текстового сообщения. Чтобы сопоставить все сообщения от отправителя, используйте шаблон
[^]*
.
Связанные разделы
Включение уведомлений мобильных операторов и системных событий