MSDC 4.3 接口规范(5)
4.2.2 MSDC Manager 模块初始化链接
4.2.2.1 接口函数
4.2.2.2 先决条件
添加 MSDC 管理模块监听器
4.2.2.3 描述
添加事件侦听器后,应用程序必须使用初始化与MSDC Manager模块的连接初始化MSDC()。通过initializeMSDC(),应用程序提供以下功能:
-
应用程序ID–应用程序的唯一ID,MSDC使用该ID对应用程序进行身份验证。
-
选择接收报告–如果应用程序有兴趣选择接收,则通知MSDC
报告。如果应用程序想要选择加入,则应将此值设置为TRUE,以便MSDC可以收集以下部分或全部接收相关信息:
–流媒体服务
◦ 客户端ID–设备的移动目录编号,或随机生成的ID。
◦ 服务ID–标识会话所属的服务。
◦ 会话开始和结束时间–用于确定日志记录的开始和停止时间。
◦ 接收或丢失的对象数–中间件定期收集对象数未能解码的,以及它试图在每个对象中解码的对象数测量周期。
◦ 网络小区ID–设备驻扎的全球小区ID(每次测量收集一次期间)。
–文件交付服务
◦ 客户端ID–设备的移动目录编号,或随机生成的ID。
◦ 服务ID–标识会话所属的服务。
◦ 会话开始和结束时间–用于确定日志记录的开始和停止时间。
◦ 文件URI–应用程序尝试下载或捕获的文件的标识符。
◦ URL和对象的传递状态–URL的中间件日志和接收成功或失败的对象。
◦ 网络小区ID–设备驻扎的全球小区ID(每次测量收集一次期间)。
注意:仅对Group Call服务感兴趣的应用程序必须将Reception Reporting Opt-in设置为FALSE,因为它无法选择MSDC的接收报告功能。除非由定义MSDC认为接收报告选择加入值为FALSE。
•目标MSDC中间件包名称–此可选参数标识目标包名称(如果设备上安装了多个MSDC中间件)。如果未指定包名称,默认值为com.qualcomm。ltebc,它是高通®MSDC发布的中间件APK程序包名称。
•MSDC中间件连接模式–标识连接首选项的可选参数。
–仅本地–模式默认值。假设MSDC中间件位于同一设备上
因为UI客户端和UI应用程序只对在装置当手机上没有运行远程MSDC中间件时,应用程序可能会选择此模式宽带产品存在。
–仅远程–表示UI应用程序有兴趣连接到远程MSDC运行在移动宽带产品上的中间件。应用程序可以选择此模式时利用在家庭/办公室的移动宽带产品上运行的远程MSDC中间件。
–Remote Preferred–表示UI应用程序首选与远程MSDC的连接运行在移动宽带产品上的中间件。但是,如果远程MSDC不是可用,UI应用程序可以连接到与UI位于同一设备上的本地MSDC中间件直到远程MSDC中间件再次可用。
•以毫秒为单位的远程重试计时器–此可选参数仅适用于远程或远程首选连接模式。它指定连接到远程MSDC的重试时间连接丢失时使用中间件。默认值为5000毫秒。如果MSDC API接受请求,并且连接初始化成功,则MSDC API以initializeMSDCConfirmation进行响应。
建议:为了缩短启动时间,应用程序应该尽可能地尽早调用initializeMSDCConfirmation。
4.2.2.4 调用流程
4.2.2.4.1 链接初始化
4.2.2.4.2 因为版本不匹配导致初始化失败
4.2.2.4.3 具有有限功能集支持的连接初始化
即使支持的MSDC API版本不匹配,连接初始化也可能成功应用程序和MSDC之间。当应用程序使用的MSDC API版本高于MSDC使用的版本。
在这种情况下,MSDC将只支持有限的功能。MSDC API通知应用程序msdcWarning()和警告代码warning_MSDC_REDUCED_FEATURE_SET
4.2.2.4.4 由于不允许运营商网络,连接初始化失败
如果MSDC中间件已配置为仅在特定运营商网络中运行,则连接如果设备在MSDC所在网络以外的网络中运行,则初始化失败中间件已配置。在这种情况下,应用程序将收到错误代码错误_MSDC_CARRIER_CHANGE_NOT_ALLOWED。
4.2.2.2.5 由于未安装MSDC中间件,连接初始化失败
如果应用程序在连接初始化和设备上未安装,应用程序将收到错误代码ERROR_MSDC_MIDDLEWARE_NOT_INSTALLED。
4.2.2.4.6由于MSDC中间件权限,连接初始化失败
对于Android M HLOS设备,MSDC中间件需要授予权限。有默认情况下不授予权限或用户拒绝权限的场景。
如果在初始化过程中拒绝或未授予所需权限,eBMS应用程序将收到错误代码EOORO_MSDC_APP_PERMISSIONS_NOT_GRANTED。
4.2.2.4.7连接初始化失败-其他原因
如果连接初始化由于任何其他原因失败,MSDC API将使用msdcError()和错误代码 ERROR_MSDC_UNABLE_TO_INITIALIZE.