




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
移动运营商通知和系统事件摘要本白皮书提供有关 windows 8 的移动运营商通知系统事件的信息。它向移动运营商提供了用于开发移动宽带 metro 风格应用的指南,从而可以有效处理基于 sms 或 ussd 的传入移动运营商通知和相关移动宽带系统事件。本书假定读者熟悉 windows 移动宽带平台和 metro 风格应用开发的基本概念。该信息适用于以下操作系统:windows 8此处讨论的参考和资源均会在本书末尾部分列出。本白皮书的当前版本在以下 web 维护: 移动运营商通知和系统事件免责声明:本文档按“原样”提供。本文档中所表达的信息和观点(包括 url 和其他 internet 网站引用)如有更改,恕不另行通知。有些信息涉及预发行的产品,它在商业发布之前可能会大幅修改。microsoft 对在这里提供的信息不做任何明示或暗示的担保。使用本文档所带来的风险由你自行承担。此处所描述的一些例子是仅为演示的目的而虚构。与真实世界无实际关联,也不应以此作为推断。本文档不赋予任何 microsoft 产品中的知识产权的法律权利。你可以复制和使用本文件作为内部参考。 2012 microsoft。保留所有权利。 文档历史记录 日期更改2012 年 8 月 15 日更新了“profileconnected 和 profiledisconnected”中的信息,增加了有关“在元数据中更改后台任务注册”和“验证是否已成功应用设置元数据”的信息,并且在“未将收到的短信检测为运营商通知”中增加了信息2012 年 6 月 8 日阐明了 profileconnected 消息类型的传递时间2012 年 5 月 31 日更新了有关 dataplanthresholdreached 消息、“在设置 xml 中定义筛选规则”、获取短信和疑难解答的信息。同时,对示例 backgroundtask.js 进行了更新。2012 年 2 月 28 日首次发表目录 简介客户在 windows 8 上对运营商品牌的主要体验为 metro 风格移动宽带设备应用。此应用不应该用于提供主要的连接管理功能,而是应该提供帐户管理体验和服务体验。为了让用户可以接收其帐户状态的通知,应用需要执行某些活动,即使在用户未与其交互时也是如此。这些活动包括对运营商 sms 或网络启动的 ussd 消息的响应,通知用户他们已接近其数据限制,通知用户其数据计划已到期以及通知用户其漫游状态。windows 8 中的后台代理工作项windows 8 引入了以全屏方式运行的 metro 风格应用,其中包括 metro 风格移动宽带设备应用。最终用户仅可以以前台方式与应用程序进行交互。前台应用被假定为对用户最重要,以便此应用接收所有系统资源。如果应用不在前台,则应用将挂起且无法运行任何代码。挂起的应用在用户通过将应用带回前台以恢复该应用前保持的挂起状态。采用这样的应用行为模型,用户体验不会受到由于执行不重要的后台应用而导致的滞后或延迟的影响。此外,减少不必要的后台活动可优化各种机型上的电池的寿命。恢复挂起的应用所花费时间可以忽略不计,并且几乎不会被大部分用户察觉。windows 8 提供可用于保持应用磁贴最新和更新(即使在该应用挂起时)的 windows 推送通知。推送通知针对系统性能和更长的设备电池寿命进行了优化,因此最好尽可能使用 windows 推送通知。如果挂起的应用必须运行自己的代码来执行其他类型的工作,则 windows 8 为该应用提供创建后台任务的功能。尽管在 metro 风格应用不在前台运行时该应用无法运行任何代码,但 windows 8 中的系统事件代理将提供一个机制让位于后台的应用运行响应事件的代码。应用可以使用系统事件代理注册工作项以响应特定后台代理的事件。当触发后台代理的事件时,windows 会运行应用的工作项,而不管该应用当前处于何种状态(活动或挂起)。通常来说,后台事件用于简单触发点,并不针对具有大量处理操作的信号。同样,每个应用的配额也基于后台事件允许的处理时间。后台事件由网络运营商 api 提供,其中包括 mobileoperatornotification 事件和 hotspotauthentication 事件,windows 将这些事件视为关键事件。与 windows 8 中的常规后台事件相比,与 mobileoperatornotification 和 hotspotauthentication 事件关联的后台工作项将执行事件的每个实例,而不考虑处理时间配额,尽管后台工作项的每个实例都会受到处理时间配额的限制。应注意,在后台事件处理程序中应仅执行最少的处理并且将较大处理推迟留给应用程序处理。有关 hotspotauthentication 后台事件的详细信息,请参阅windows 8 无线热点运营商集成。术语和定义本书使用以下术语:后台任务由应用实现的类或 javascript 页面,即使在应用不在前台的情况下也可以提供功能。后台触发器系统定义的事件,应用可以将其与后台任务关联。当系统触发触发器时,将启动与该触发器关联的应用后台任务。前台应用用户正在主动与其交互的应用。mobileoperatornotification 场景mobileoperatornotification 事件是重要的后台事件,该事件针对必须通知最终用户其服务或帐户更改的各种场景。事件负载用于区分触发 mobileoperatornotification 事件的不同场景。在任何情况下,metro 风格移动宽带设备应用都需要运行代码以高效完成场景。以下各节将详细介绍这些场景。连接到移动宽带和断开与移动宽带的连接windows 连接管理器 (wcm) 监控通过 wi-fi、移动宽带和以太网实现的网络。它可基于可用网络的情况,自动做出连接和断开连接的决定。当 wcm 连接到移动宽带配置文件和断开移动宽带配置文件的连接时,将触发 mobileoperatornotification 后台事件。这允许运营商的应用在连接到其网络时执行任意逻辑必要操作,例如验证帐户状态,检索最近的数据使用量或向用户显示 toast 通知和磁贴更新以通知用户相关帐户状态。网络运营商消息windows 8 中的移动宽带平台仅为运营商的 metro 风格设备应用提供可用的增强功能,以接收和显示传入 sms 和网络启动的 ussd 运营商管理消息。这些消息可用于用户通知,例如,接近数据使用量上限、国际漫游或余量不足,或者用于触发来自运营商的应用的响应。应用适当地处理传入消息。可能的响应包括以下任意或全部内容: 立即同步当前数据使用量 更新 metro 风格应用的磁贴 检索并应用更新的运营商设置 xml 向用户显示 toast 通知,例如:用户可以点击或单击要直接发送给运营商的应用的通知,如下图所示。如果运营商希望在应用中显示消息,则 mobileoperatornotification 事件触发的后台任务需要读取消息内容并将消息内容存储至应用自己的本地数据存储中。移动宽带 sms 平台不保留过去接收到的管理 sms 通知队列。移动网络运营商 sms 通知传入 sms 消息可用于已请求和授予对电脑上 sms 功能的访问权限的所有应用。但是,某些 sms 消息直接来自运营商并应限制用于该运营商的应用并由该应用处理。移动宽带 sms 平台筛选每个新接收的以下两种类型之一的 sms:来自 mno 的管理(“无提示”)sms 通知和常规 sms 消息。从移动网络运营商处接收的管理 sms 通知仅可由 mno metro 风格应用访问,并在常规 sms 客户端应用中隐藏。移动网络运营商在帐户设置元数据中为管理 sms 和 ussd 通知指定自定义筛选规则。如果未指定消息筛选规则,则 sms 平台将所有 sms 消息分类作为可用于所有应用的常规 sms 消息。如果传入 sms 与设置的筛选规则相匹配,则触发 mobileoperatornotification 事件并且后台工作项可以相应地处理传入 sms 消息。网络启动的 ussd windows 8 提供 ussd api,这是基本 ussd 协议的抽象,它隐藏了大部分细节以简化应用程序的开发。当接收到与设置的筛选规则匹配的网络启动的 ussd 后,将触发 mobileoperatornotification 事件,并且相应的后台工作项可以通过 ussd 会话使用 ussd api 进行通信。有关 ussd api 的详细信息,请参阅 windows.networking.networkoperators 命名空间。以本地方式触发数据使用量和漫游通知在许多市场中,监管法律要求移动网络运营商通知用户当达到其数据使用限制时或该用户正在更贵的网络中漫游。此消费者保护措施将减少“帐单震撼”或者非常高的使用费用的风险。在 windows 中,运营商的移动宽带应用可以显示 toast 通知和磁贴更新以确保用户意识到数据使用量和漫游状态。这些通知可通过 sms 或 ussd 从运营商的网络后端启动,这将触发 mobileoperatornotification 事件,如上例所示。此外,在以下情况中使用本地信息也可触发 mobileoperatornotification 事件。 通过本地数据计数器的数据使用量通知 运营商通过设置元数据启动本地数据使用量通知。 本地数据计数器评估自上次更新后更改量超过用户数据限制 5% 的配置文件上的使用量。 数据使用量和订阅管理器 (dusm) 通知系统事件代理触发 mobileoperatornotification 事件。 系统事件代理调用运营商的应用来处理后台事件。 应用通过从运营商的后端基础结构中检索最新使用量信息来处理事件。 如果当前使用量信息超过阈值(例如 80%),则应用将向用户显示一个 toast 通知并用当前使用量更新 dusm。此外,如果当前使用量没有超过阈值,则应用无需显示 toast 通知。通过 windows 连接管理器的漫游通知 windows 连接管理器在将连接报告为“漫游”的移动宽带网络上注册。 windows 连接管理器通知系统事件代理触发 mobileoperatornotification 事件。 系统事件代理调用运营商的应用来处理后台事件。 应用识别用户在此网络上漫游时是否会产生额外使用费用,并且如果需要会向用户显示一个 toast 通知和磁贴更新。数据计划到期和使用量重置dusm 跟踪用户帐户的相关详细信息,其中包括预付费数据计划的计划到期日期或者后付费数据计划的计划使用量重置日期。当用户的数据计划到期时,dusm 通知系统事件代理触发 mobileoperatornotification 事件。运营商的应用可以通过向用户显示一个 toast 通知和磁贴更新来处理该事件,通知用户其计划已到期或指示用户续订其服务。对于后付费数据计划,dusm 在特定日期将计划数据使用量重置为零,例如每月的第一天。进行重置时,会触发 mobileoperatornotification 事件,且应用可以通知用户已更新的数据使用量。mobileoperatornotification 事件详细技术信息事件负载mobileoperatornotification 事件负载包括以下字段: messagetype 触发事件的消息的枚举。 interface 对应于与事件关联的物理接口的 guid。 encodingtype 如果 messagetype 为 sms/ussd,则该字段为消息的编码方法。 messagedatasize 如果 messagetype 为 sms/ussd,则该字段为消息的大小,以字节为单位。 message 如果 messagetype 为 sms/ussd,则该字段为收到的原始消息。通过使用事件负载中的 messagetype 字段区分这些方案,mobileoperatornotification 事件可以启用上述每个方案。对 messagetypes 进行枚举,如下所示: gsm sms cdma sms ussd dataplanthresholdreached dataplanreset dataplandeleted profileconnected profiledisconnected registeredroaming registeredhome 与 mobileoperatornotification 事件关联的工作项应从高效区分 messagetype 的逻辑开始并为每个方案执行适当的代码。gsm/cdma sms 和 ussd传入的运营商消息(包括 sms 和 ussd)将根据正确对应的 messagetypes 触发 mobileoperatornotification 事件。只有这些类型具有 encodingtype、messagedatasize 和 message。dataplanthresholdreached默认情况下,此消息类型处于禁用状态。必须通过使用设置元数据指定 datausageinmobileoperatornotificationenable 字段来启用此字段,如下所示。 2c85b76b-f859-47c4-8122-721fe8b6c25f 012345678901234 contoso sampleplan c user secret 500 true 有关其他详细信息,请参阅提供移动宽带元数据。除了以下两种情况,当本地数据计数器评估自上次事件发生后在移动宽带接口上的使用量(发送和接收的字节)达到 5% 的变化时,将使用此 messagetype 生成事件: 当连接到家庭网络(非漫游)时,如果未指定数据计划限制,则每使用 100 mb 本地数据触发此事件一次。 当连接到漫游网络时,数据计划限制将不适用,并且每使用 5 mb 本地数据触发此事件一次。windows 8 中的本地数据计数器以 1 分钟的频率进行更新;在上面描述的所有情况下,最多每分钟生成此事件一次。必须注意的是,尽管可将此信息视为良好的初级指导值,但 windows 无法将未计费流量或共享同一数据限制(例如,家庭计划或 sim 对换)的其他设备上的使用量也计算在内。运营商应用仅应将本地数据计数器用于自上次与运营商所有的计费系统同步后粗略估计使用量。对于已使用的数据使用量,应将计费系统提供的信息视为权威信息。dataplanreset 在计划重置日期当日,dusm 将用户的当前本地数据使用量重置为零。dataplandeleted对于具有固定到期日期的预付费数据计划,dusm 将在到期日期当日删除与该帐户关联的连接配置文件,并且触发具有此 messagetype 的 mobileoperatornotification 事件。当连接配置文件删除后,windows 连接管理器将不再尝试自动连接到该连接配置文件描述的网络。profileconnected 和 profiledisconnected当 windows 连接管理器连接到运营商体验元数据提供的网络配置文件时,将生成具有这些 messagetypes 的 mobileoperatornotification 事件。此事件将在每次连接和断开连接时触发,其中包括睡眠/恢复后的初始连接。profileconnected messagetype 在移动宽带接口的 l2 连接上触发。必须注意的是,此触发行为发生在网络标识完成之前。在网络标识已经确定网络的连接级别时生成 networkstatuschanged 事件(属于 networkinformation api 的一部分)。有关网络标识的详细信息,请参阅快速入门:检索网络连接信息(使用 javascript 和 html 的 metro 风格应用)和 networkinformation 类。registeredroaming 和 registeredhome当 windows 连接管理器注册到报告为漫游的网络时,将生成具有这些 messagetypes 的 mobileoperatornotification 事件。此事件将在每次注册时触发,其中包括睡眠/恢复后的初始注册。应用会仅在用户在漫游网络上注册时和在用户返回其所属网络时通知该用户。由于此事件在每次注册时触发,因此该应用负责在应用的会话数据中跟踪以前注册的状态。通过元数据注册 mobileoperatornotification 事件通常情况下,应用必须由用户至少运行一次才可通过系统事件代理注册工作项。但是,由于完成关键移动宽带方案需要使用 mobileoperatornotification 事件,因此此事件通过移动宽带服务元数据与移动宽带应用相关联。在服务元数据中,添加以下条目:packagesoftwareinformationsoftwareinfo.xml 在上述 xml 中,eventid 属性告知系统设备期望哪种类型的事件。eventasset 属性中的字段应指向实现后台任务的入口点。这将告诉系统当特定事件发生时会运行哪种任务。例如,对于上述 xml,系统将创建和注册特定于该设备的事件。它还将为此事件注册 metro 风格应用。对于上述示例,应用必须具有名为 backgroundtask.js 的 javascript 文件,该文件在每次接收运营商通知时由系统运行。如果 metro 风格应用为 c# 应用,则事件资产必须指向实现 backgroundtask 接口的运行时类。 下载元数据和应用时,设备设置管理器通过系统事件代理注册相应的工作项之后,应用才可运行一次。在元数据中更改后台任务注册如果在更新版本的 metro 风格应用中更改后台任务入口点,也需要更改元数据中的 devicenotificationhandler。虽然最终用户需要在 windows 应用商店中手动更新 metro 风格应用,但是会在 windows 8 电脑上自动更新元数据。开发人员应避免在元数据中更改 devicenotificationhandler 后台任务注册。如果需要进行更改,则元数据应包含对所有受支持版本的 metro 风格应用中使用的所有不同后台任务入口点的引用,以便为尚未手动更新 metro 风格应用的最终用户保留功能。在设置 xml 中定义筛选规则windows 使用来自运营商的元数据信息来自定义 windows 8 的各个方面,其中包括提供数据以设置电脑。设置 xml 用于指定自定义筛选规则以区分运营商 sms 与 ussd 通知。有关讨论的元数据和设置的详细信息,请参阅提供移动宽带元数据。windows 接受来自运营商的基于 xml 的设置文件。设置 xml 的示例版本如下所示: 11111111-1111-1111-1111-111111111111 1234567890 contoso limited contoso contoso.contoso user password * (d+.d+)(w+) of (d+)(w+) used as of (s+) 将文本消息标识为运营商消息的规则可在此 xml 中定义。 允许的发件人:“sender”特性用于指定允许通知从其发出的保留发件人地址。(此数字必须与 sms 消息中接收到的发件人编号精确匹配,其中包括国际格式)。 模式:用于标识和可选地从文字消息中提取数据字段的正则表达式。 要匹配来自某个发件人的所有消息,请使用模式 *更多信息可在提供移动宽带元数据中找到。开发处理 mobileoperatornotification 事件的应用最佳做法关于后台事件的处理,应遵守以下最佳做法: 请勿注册你无法对其采取操作的后台事件。处理这些事件将不必要地占用应用程序配额。 请勿在接收到后台事件时执行大量处理。 请考虑将处理推迟到下次应用启动时。 请考虑显示 toast 通知和更新磁贴以响应后台事件。可以启动 metro 风格应用来处理后台事件负载。有关 windows 8 中后台事件模型的详细信息,请参阅后台任务简介。第 1 步:后台任务合约声明若要使 windows 可以识别移动运营商的 metro 风格设备应用提供的后台任务体验,该应用必须声明它提供了系统功能的扩展。若要在 visual studio 11 项目的 package.appxmanifest 文件中做出声明,请遵循以下步骤: 在 microsoft visual studio 2012 中,在解决方案资源管理器中双击你的项目的 package.appxmanifest 文件。 在“声明”选项卡中,从“可用声明”中选择“后台任务”,然后单击“添加”。 在“属性”下输入应用信息。 对于使用 javascript 和 html 的 metro 风格设备应用,在应用程序设置的 startpage 字段中输入在应用中处理后台任务的文件名(例如 backgroundtask.js)。 对于“支持的任务类型”,请选择“系统事件”。下图显示了采用 c# 的此过程:下图显示了采用 javascript 的此过程:假如操作正确,当使用 notepad 打开 package.appxmanifest 时,会看到以下代码: . . . . 第 2 步:后台任务处理程序如果应用提供移动运营商通知声明,则必须提供用于该后台任务激活的处理程序。该处理程序将从以下位置中获取移动运营商网络帐户 id 和事件数据:windows.ui.webui.webuibackgroundtaskinstance.current.triggerdetails (windows.networking.networkoperators.networkoperatornotificationeventdetails )。由于后台任务支持的唯一 ui 为 toast,因此后台任务处理程序可以显示 toast 或将 networkoperatornotificationeventdetails 保存到本地存储中。以下代码示例显示了可在接收到新的管理 sms 通知时运行的后台任务。c#:using windows.networking.networkoperators;namespace mnomessagebackgroundpublic sealed class mnobackgroundtask :ibackgroundtaskpublic void run(windows.applicationmodel.background.ibackgroundtaskinstance taskinstance)networkoperatornotificationeventdetails notifydata = (networkoperatornotificationeventdetails)taskinstance.triggerdetails;/ the network account id is stored in notifydata.networkaccountid. switch (notifydata.notificationtype) case networkoperatoreventmessagetype.gsm:/ 0 break; case networkoperatoreventmessagetype.cdma:/ 1 break; case networkoperatoreventmessagetype.ussd:/ 2 break; case networkoperatoreventmessagetype.dataplanthresholdreached:/ 3 break; case networkoperatoreventmessagetype.dataplanreset:/4 break; case networkoperatoreventmessagetype.dataplandeleted:/5 break; case networkoperatoreventmessagetype.profileconnected:/6 break; case networkoperatoreventmessagetype.profiledisconnected:/7 break; case networkoperatoreventmessagetype.registeredroaming:/8 break; case networkoperatoreventmessagetype.registeredhome:/9 break; default: break; / add code to save the message to app local storage, and optionally show toast notification and tile updates.javascript:(function () use strict; / / the background task instances activation parameters are available via / windows.ui.webui.webuibackgroundtaskinstance.current. / var backgroundtaskinstance = windows.ui.webui.webuibackgroundtaskinstance.current, networkoperatoreventtype = windows.networking.networkoperators.networkoperatoreventmessagetype, key = null, settings = windows.storage.applicationdata.current.localsettings; try var details = backgroundtaskinstance.triggerdetails;/ the network account id is stored in workaccountid. switch (details.notificationtype) case networkoperatoreventtype.gsm: showtoast(mobile broadband message, details.message); break; case networkoperatoreventtype.cdma: showtoast(mobile broadband message, details.message); break; case networkoperatoreventtype.ussd: showtoast(mobile broadband message, details.message); break; case networkoperatoreventtype.dataplanthresholdreached: showtoast(mobile broadband message, data plan threshold reached); break; case networkoperatoreventtype.dataplanreset: showtoast(mobile broadband message, data plan reset); break; case networkoperatoreventtype.dataplandeleted: showtoast(mobile broadband message, data plan deleted); break; case networkoperatoreventtfileconnected: showtoast(mobile broadband message, profile connected); break; case networkoperatoreventtfiledisconnected: showtoast(mobile broadband message, profile disconnected); break; case networkoperatoreventtype.registeredroaming: showtoast(mobile broadband message, registered roaming); break; case networkoperatoreventtype.registeredhome: showtoast(mobile broadband message, registered home); break; default: showtoast(mobile broadband message, unknown message); break; / / a javascript background t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 聊城职业技术学院《第二语言教师教育》2024-2025学年第一学期期末试卷
- 武汉职业技术学院《物流经济学》2024-2025学年第一学期期末试卷
- 2025青海公务员面试题及答案
- 2025农村公务员考试题及答案
- 2025年公路工程试验检测师资格考试(道路工程)综合能力测试题及答案二
- 2025绿色金融考试题及答案
- 2025历届公务员考试题及答案
- 2025年河南开封海港引航员适任考试(船舶避碰)复习题及答案
- 2025考公务员考试题目及答案
- 2025抗疫公务员面试题及答案
- 2025年版房屋租赁合同模板下载
- 2025年第三类医疗器械培训试卷(含答案)
- 2025年医院财务科招聘考试题目(附答案)
- 面试指导:空中乘务面试常见问题与答案
- 2025年医德医风培训试题(附参考答案)
- 二人合伙开店的合同协议
- 北师大版五年级数学下册常考题:分数除法(单元测试)含答案
- 2026届高考生物一轮复习:人教版必修1《分子与细胞》知识点考点背诵提纲
- 高血压病例汇报
- 2025年全国青少年“学宪法、讲宪法”知识竞赛题库及答案
- 2025年成都高新区石羊街道公办幼儿园招聘编外人员考前自测高频考点模拟试题及答案详解1套
评论
0/150
提交评论