自注册DM(三)CMCC移动DM SDK适配

SDK集成文档

 

目录

1  概述.....................................................................2

2  环境配置要求............................................................2

3  基础使用说明............................................................3

3.1 前期准备....................................................3

3.2 终端客户端接入方式..........................................3

3.3 引入SDK(jar).............................................4

3.4 配置manifest注册AppId....................................4

3.5 配置manifest文件为sdk组件做静态注册......................5

3.5.1添加权限配置清单.........................................5

3.5.2添加系统组件注册清单.....................................6

3.5.3系统静态广播接收者组件...................................6

3.5.4动态更新组件.............................................7

4  接口调用说明............................................................7

4.1 SDK初始化..................................................7

4.2 设置SDK的DEBUG模式.......................................8

4.3 设置初始化终端SDK获取设备信息的实现DmykAbsTelephonyManage8

 

 

 

 

 

 

1   概述

 

终端出厂时需将终端管理SDK集成至终端操作系统,先提供此集成文档供终端厂家参考。终端需实现规范要求API供SDK调用,详情参见《终端管理接口规范(终端能力开放接口分册)V1.0.1》,终端厂家在集成SDK后需保证对用户不可见,详细要求请参考《终端管理终端技术规范V1.0.1》。

本SDK仅限于终端适配联调使用,终端送测及正式发售前需更换商用版SDK,调试版SDK域名指向终端适配管理平台,打开日志输出,终端厂商可以从终端适配平台查看终端上报信息、修改配置参数,心跳周期在调试版中做了比例缩短处理。商用版SDK域名指向商用平台,关闭日志输出,终端厂商无法查看平台相关数据,心跳周期按规范要求设定,其余代码均无区别。适配集成过程中如果有问题可以先查阅《终端管理客户端集成适配FAQ》文档。

2   环境配置要求

 

Android Studio

Tool

Version

gradle

2.2.3+

compileSdkVersion 

21+

minSdkVersion  

14+

targetSdkVersion  

21+

 

Eclipse

compileSdkVersion 

21+

minSdkVersion  

14+

targetSdkVersion  

21+

 

 

3   基础使用说明

 

3.1  前期准备

终端厂商需实现终端能力开放相关接口,按要求封装成相应的库,以便于终端客户SDK集成调用,相关包名、类名设计及实现参考终端管理接口规范(终端能力开放接口分册)。

3.2  终端客户端接入方式

接入方式一:

图3-1 终端客户端SDK集成方案

终端厂商将终端SDK内嵌至已有的常用系统及应用,确保其终端自注册信息采集正常,业务处理正常,保证客户端具备开机自启动权限,具备涉及联网、数据采集所需要的所有系统权限,保证客户端进程不会被系统安全管理软件清除。

其中终端客户端SDK主要实现相关数据采集的及业务功能设置,实现终端数据上报终端管理及服务平台。终端厂商需要实现终端管理接口,完成终端SDK内置集成。

接入方式二:

图3-2 终端客户端APK集成方案

终端厂商将终端客户端封装成独立的APK,同时将其需声明为系统应用,同时终端厂商相关接口需过滤掉应用信息,使用户不可见,无感知,确保其终端自注册信息采集正常,业务处理正常,保证客户端具备开机自启动权限,具备涉及联网、数据采集所需要的所有系统权限,需要能够做到常驻内存,保证客户端进程不会被系统安全管理软件清除,影响终端SDK的数据采集和上报。

终端管理APK主要实现相关数据采集的及业务功能设置,实现终端数据上报终端管理及服务平台。终端厂商需要实现终端管理接口,将APP内置为系统级应用,同时屏蔽所有能查询APP相关信息接口。

 

3.3  引入SDK(jar)

在需要集成的project中引入SDK,拷贝至libs目录下并添加引用。

3.4  添加图片引用

拷贝 icon_dm.png至res目录下的drawable文件夹下,为sdk在特定条件下弹出Notification通知添加图片引用。

3.5  配置manifest注册AppKey

<meta-data
android:name="dmkey"
android:value="1234415234123kk"/>

每一个终端厂商都对应有唯一的AppKey,是作为管理终端厂商的唯一标识,在集成时需同步修改成对应的值,该AppKey一般由终端管理及服务平台生成,一般在平台从可以查到,如果没有,可以联系相关人员获取。

注:同厂家不同型号终端使用相同AppKey。

3.6  配置manifest文件为sdk组件做静态注册

3.6.1  添加权限配置清单

<uses-permission android:name="android.permission.INTERNET" />//网络权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
//接收开机启动广播
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
//获取WiFi状态

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
//读取网络相关信息
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
//获取手机rom,ram等信息
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
//获取rom
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
//写日志
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
//写日志
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
//读取cell id和lac
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions"/>
//获取应用使用的相关信息
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS"
tools:ignore="ProtectedPermissions"/>
//读写apn的数据库

3.6.2  添加系统组件注册清单

注册系统基础服务组件

<service
android:name="cn.richinfo.dm.service.DMService"
android:exported="true" >
</service>

3.6.3  系统静态广播接收者组件

<receiver android:name="cn.richinfo.dm.receiver.DMBroadCastReceiver">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="com.dmyk.android.telephony.action.SIM_STATE_CHANGED"/>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>

<intent-filter>
<action android:name="android.dmyk.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>

<intent-filter>
<action android:name="cn.richinfo.dmyk.action.APPINFO" />
<action android:name="cn.richinfo.dmyk.action.APPINFO_RETRY" />
</intent-filter>

<intent-filter>
<action android:name="cn.richinfo.dmyk.action.REGISITER" />
<action android:name="cn.richinfo.dmyk.action.REGISITER_RETRY" />
<action android:name="cn.richinfo.dmyk.action.HEARTBEAT" />
<action android:name="cn.richinfo.dmyk.action.HEARTBEAT_RETRY" />
</intent-filter>

<intent-filter>
<action android:name="cn.richinfo.dmyk.action.APN" />
<action android:name="cn.richinfo.dmyk.action.APN_RETRY" />
</intent-filter>

<intent-filter>
<action android:name="com.dmyk.android.telephony.action.VOLTE_STATE_CHANGE" />
<action android:name="com.dmyk.android.telephony.action.APN_STATE_CHANGE" />
</intent-filter>

</receiver>

4    接口调用说明

4.1 SDK初始化

系统APP需要在Application的入口函数onCreate(Bundle)方法中对DMSDK.init(Application);进行初始化操作,加载SDK启动所需要的资源。

4.2 终端SDK获取设备信息的实现DmykAbsTelephonyManage

所有厂商自行创建com.dmyk.android.telephony.DmykAbsTelephonyManager类,并在其中实现文档中的17个抽象方法。

5    SDK日志管理/异常分析

5.1  日志保存路径

sdk在Debug调试模式下会自动生成日志文件,存储路径为Environment.getExternalStorageDirectory() + "/DMLog",不同厂商对该接口是实现逻辑不一致,通常都在SD存储卡的DMLog目录下面。每一个日志文件的命名都是基于日期来定义。

5.2  日志TAG标签分析

日志记录的每一条调试信息都会包含<日期+类型+TAG+SDK_VERSION+Message>等多种信息,来帮助厂商和SDK开发人员分析定位在集成过程中出现的各种异常问题。

 

RegisterMsgReport

自注册相关日志TAG,如果自注册成功会打印“RegisterMsgReport自注册成功”

HeartbeatMsgReport

心跳相关日志TAG,上报成功会打印“心跳成功”

PostApplyMsgReport

上报应用使用信息TAG,可以查看应用上报的信息

ApnInfoReport

APN信息上报TAG,上报成功会打印“apn上报成功”

currentRetryCount0

查找当前的重试次数,最后的数值为第几次重试次数

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值