《2022年有推客户端中间件API使用说明书参考 .pdf》由会员分享,可在线阅读,更多相关《2022年有推客户端中间件API使用说明书参考 .pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、有推客户端中间件(AOE_SDK)API 使用说明书文档版本V1.2.2 发布日期2016-07-18 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 20 页 -目录1、概述 .31.1有推系统介绍.31.2有推系统示意图.31.3术语解释.42、接入说明.42.1 导入工程或者引用开发包.42.2 第一步继承AoiCallback.52.3 第二步声明AoiSDK对象.62.4 第三步配置AndroidMenifest.xml(以 demo中配置文件为准).62.5 第四步实现需要的广播和Service.错误!未定义书签。2.6 调试.11 3、常见问题列表FAQ.12 4、
2、升级集成说明.16 5、编制历史.18 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 20 页 -1、概述1.1 有推系统介绍有推系统是中国移动定义的永远在线平台,手机应用平台可以通过有推系统向终端发送消息。有推系统由终端中间件(AOE)、AOI 网关、服务端中间件(AOI_SDK)三部分组成。1.AOE集成在手机终端应用中,管理与AOI 网关的长连接并处理下发和上行的消息,它可以将收到的消息(下行)转发给终端应用,也可以将终端应用的消息转发给AOI 网关(上行)。2.AOI 网关是有推系统的核心网元,它主要负责终端连接管理及处理消息上下行。3.服务端中间件(AOI_SDK)集
3、成在与手机终端应用对应的应用平台中,管理应用平台和AOI 网关之间的连接及处理消息的上下行。对于无应用平台的终端应用无需集成AOI_SDK,可通过有推网站进行推送(http:/ 有推系统示意图下图为有推系统的示意图,图中的方框代表软件,AOE是由手机应用集成的,AOI-SDK是由应用平台集成的。AOI 网关是中间一个独立系统。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 20 页 -1.3 术语解释术语解释下行消息流向为应用平台(或者有推网站)AOI 网关 手机终端应用的消息上行消息流向为手机终端应用AOI网关 应用平台的消息AOE Always Online Engine,永
4、远在线推送基础平台AOI Always Online Infrastructure,永远在线推送基础平台2、接入说明2.1 导入工程或者引用开发包将 AOE DEMO源码导入IDE(此处使用Eclipse),DEMO 对应的工程名为AoeDemo,导入后如下图所示:1、检查libs 中是否成功引用了jar 包(此处以1.2.0 版本为例,最新版本请登录http:/ 是对 下载框 的样式定义,使用点击“下载功能”必须 将该文件拷贝到目标工程的layout 目录下,可以根据自己需要更改下载框字体的大小。其它的xml 文件为 demo 自身为演示而使用的,APP集成时可以不需要关注。名师资料总结-精
5、品资料欢迎下载-名师精心整理-第 4 页,共 20 页 -2.2 第一步 继承 AoiCallback 第 1 步,新建class继承AoiCallback(当然也可以根据自身业务需求,在既有类基础上继承AoiCallback类)/*第一步:继承AoiCallback类,重写 onInit和onNotifyData方法。其它方法可以根须需要备选,参见 ThreeCallback类。*第二步:配置AndroidMenifest.xml中相关权限、组件参数,可参考demo配置*第三步:启动BindAoeService,内部有对应初始化方法*当前为第一步。*/publicclass AoeCallb
6、ack extends AoiCallback Override/用于获得注册成功后返回的token,应用可根据 token 是否改变自行增加业务publicvoid onInit(int result,String token)/TODO Auto-generated method stub Overridepublicvoid onNotifyData(int result,byte data)/TODO Auto-generated method stub Overridepublicvoid onUnregister(int error)/TODO Auto-generated met
7、hod stub Overridepublicvoid setContext(Context context)/TODO Auto-generated method stub Override/用于 APP获取当前的推送服务运行状态,具体状态值参考附录列表 publicvoid onState(int state)/TODO Auto-generated method stub /重写onInit、onNotifyData和setContext方法,主要示例代码如下:privatestaticfinal String TAG=AoeDemo;private Context mContext;O
8、verride/用于获得注册成功后返回的token,APP可保存 token 值,当 token 发生改变时,接收消息或token 发生变化后,进行对应业务调控publicvoid onInit(int result,String token)if(mContext!=null)Toast.makeText(mContext,TAG+token:+token,名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 20 页 -Toast.LENGTH_LONG).show();Override/用于获得服务端推送给APP的消息,data 指消息内容,为通过服务端下发透传消息的内容publ
9、icvoid onNotifyData(int result,byte data)String temp=new String(data);if (mContext !=null)Toast.makeText(mContext,TAG+notify:+temp,Toast.LENGTH_LONG).show();Override /用于 APP获取当前的推送服务运行状态,具体状态值参考附录列表 publicvoid onState(int state)/TODO Auto-generated method stub Override publicvoid setContext(Context
10、context)mContext=context;2.3 第二步 配置 AndroidMenifest.xml(参考 demo中配置)1)添加 SDK运行所需要的系统权限名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 20 页 -2)添加 AOE用到的 BroadcastReceiver和 Service 名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 20 页 -名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 20 页 -注:1、aoicallback:回调方法路径,必须进行配置,否则会接收不到消息,根据应用继承AoiCallback的具体实现类进行
11、配置;1、service_version:aoe 版本号,该示例中为1.2.0,必须 根据使用的 AOE版本号进行相应调整2、appid_with_aoe 的 value在 实 际 集 成 中 必 须 更 换 成 申 请 有 推 能 力 时 获 得 的 APPID,NotifyCationReceiver中 的 配 置 也 要 做 相 应 的 修 改。示 例 中 的 APPID 为1081000000042.4 第三步 启动 AOEService,运行推送功能启动 AoeService,通过启动BIndAoeService,在对应里面包含对应的初始化方法/*第一步:继承 AoiCallback
12、类,重写 onInit和onNotifyData方法。其它方法可以根须需要备选,参见 ThreeCallback类。*第二步:将 Demo中AndroidMenifest.xml中配置拷贝到目标工程中 *第三步:启动BindAoeService,内部有对应初始化方法 */publicvoid onCreate(Bundle bundle)super.onCreate(bundle);setContentView(R.layout.main);Intent intent=new Intent(this,com.cmcc.aoe.BindAoeService.class);startService
13、(intent);注:init方法中的第二个参数,在实际集成时需要修改为应用申请有推时分配的APPID,并与AndroidMenifest.xml中的配置保持一致。名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 20 页 -2.5 调试1)安装 demo 的 APK后,启动应用,出现如下界面,各按钮的说明见右侧说明。1、点击测试 onInit 按钮可以查看已经获得的TOKEN,如果尚未获得TOKEN,待获得后方能查看;2、点击打开客户端按钮,会在手机的通知栏中展示一个通知,点击该通知可打开该demo 3、点击打开URL按钮,会在手机的通知栏中展示一个通知,点击打开百度首页4、点
14、击下载文件按钮,会在手机的通知栏中展示一个通知,点击打开下载页面5、点击打开Acitivity,会在手机的通知栏中展示一个通知,点击打开对应的Activity 界面2)直接使用demo 进行真正推送调试,保持APPID为108100000004不变访问 http:/ DEMO CONTENT”字样,通过toast展示;2、点击“通知打开网页”,在客户端通知栏中会出现一条通知,点击将打开一个网页。3、点击“通知启动应用”,在客户端通知栏中会出现一条通知,点击将打开客户端的主界面。3)使用自有APP、APPID集成 AOE后调试访问 http:/ 11 页,共 20 页 -3、API接口说明类 A
15、oiSDK AoiSDK 对外接口类java.lang.Object_x000D_ com.cmcc.aoe.sdk.AoiSDK 3.1 方法摘要返回类型方法名void setDebug(booleanisDebug)设置后台日志是否打印,默认值打印日志void start(Context context)尝试启动服务,多次调用不影响服务运行void QueryState(Context context)查询 AOE 运行状态,结果通过AOICallback 的onstate反馈应用void syncMessage(Context context)尝试去获取 AOI 的离线消息3.2 接口说
16、明3.2.1 设置调试模式接口名称publicstaticvoid setDebug(Context context,booleanisDebug)参数名称作用isDebugFalse:非调试模式,true:调试模式(打印日志)context 返回结果:无示例:AoiSDK.setDebug(true);/打开调试模式AoiSDK.setDebug(false);/关闭调试模式3.3.2 启动 AOEService 接口名称publicstaticvoidstart(Context context)参数名称作用名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 20 页 -cont
17、ext尝试启动服务,多次调用不影响服务运行返回结果:无示例:AoiSDK.start(context)3.3.3 查询状态接口名称publicstaticvoid QueryState(Context context)参数名称作用context查询 AOE 运行状态,结果通过AOICallback 的 onstate反馈应用返回结果:无示例:AoiSDK.QueryState(context)3.3.4 获取离线消息接口名称publicstaticvoid syncMessage(Context context)参数名称作用context尝试去获取AOI 的离线消息返回结果:无示例:AoiSD
18、K.syncMessage(context)4、常见问题列表FAQ 1.如果推送与服务器断开了,客户端要做处理么?A:有推推送的逻辑是:让开发者尽可能的无需关注和维护推送,而是让开发者更专注于推送的功能来搭建自己的业务,无需开发者去处理的2.有推推送需要付费么?A:有推推送是免费的,开发者可以免费使用而没有限制3.推送可以进行群发么?A:有推推送可以进行群发的,需要注册开发者账号并登陆。4.推送的 APPID与 APPKEY 值怎么得到?A:请登录中国移动能力池(http:/ APPKEY。5.APP关闭后,还能进行推送么?A:默认情况是程序正常退出,推送服务继续在后台运行并能够接收到消息。6
19、.什么是有卡终端?什么是无卡终端名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 20 页 -A:手机或其它终端内SIM 卡属于中国移动,则认为是有卡终端。除此之外的皆认为是无卡终端。7.什么是长连接?A:手机或是其它终端为了保持与服务器端持续高效通讯,需要连上服务器,当有上下行数据时,可以用这条已建立的通讯链路来传输数据。8.长连接保持的时间是多长?A:一直保持连接9.为什么要区分有卡与无卡终端?A:便于对有卡提供更个性化的服务10.当网络不稳定时(但有网络),长连接建立不成功怎么办?A:系统具备机制保证连接建立成功11.无网络怎么办?A:无网络时连接可能会断掉,网络服务时系统
20、会根据需要确定是否重新建立连接。12.终端注册是否要发短信?A:有卡会,无卡不会。13.终端注册时发的短信是否要扣费?A:免费14.终端注册成功后,是否还会发短信?A:不会15.软件缷后,重新安装,是否还会发短信注册?A:不会16.如果多个应用集成了AOE,是否每个应用都会走注册流程导致发送注册短信?A:不会17.多个应用集成AOE,会建立多条长连接?多个服务吗?A:只有一个服务,只有一条长连接18.多个应用集成AOE,哪个应用来建立长连接A:内嵌 AOE版本最高的那个应用负责建立长连接。19.收到唤醒短要付费吗?名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 20 页 -A:
21、不要20.集成 AOE是否费电?A:AOE只消费很少的电量21.AOE是否有日志,存在哪儿?A:/SDCARD/.AOE/AOELOG.TXT 22.通知与自定义(透传)消息有什么区别?A:产品角度的区别:通知:终端中间件将会将消息直接展示在通知栏中,发通知提醒、激活用户。自定义消息:用于APP内部业务,APP可以根据需要自定义消息的组成。开发者使用角度的区别:通知:终端中间件处理并展示,无需APP处理;自定义消息:终端中间件将消息投递给APP,完全由APP进行处理。23.基本架构A:有推包括 AOI 平台、AOI SDK、AOE(Always Online Engine)三部分。24.能力调
22、用A:开发者在能力集市中创建应用,申请使用”有推“能力,能力池分配给开发者APP ID 和 APP KEY,在该界面中的能力配置,是必选配置,必须进行。在该页面中,会生成 SPID(目前 SPID值等同于 APP ID)。开发者后续需持APP ID、APP KEY、SPID进行应用的开发和能力的使用。25.如何接入有推?名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 20 页 -26.短信权限使用“短消息”能力时必须在menifest 中配置对16861 端口的监听和SMSNotifyReceiver,若不使用“短消息”能力时不要求以上权限。5、升级集成说明1)AOE1.0.6
23、与 1.0.5 版本相比a)增加了短消息能力,终端用户无数据网络时也能将消息送达。如果使用该功能,需在 Menifest.xml 中增加如下配置。具体可参见demo 源码或者本文档2.4 节。名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 20 页 -b)可自定义下载框的样式,参见demo 中的 layout 配置文件alert_message.xml,可根据需要自行修改字体大小、颜色、按钮名称,请勿修改控件id。c)增加对“b”中下载按钮点击事件的统计,该功能由AOE自行完成,开发者不需要额外开发。d)取消配置文件Menifest.xml 中读取短信权限的声明,不再需要 声明
24、。2)AOE1.0.9与 1.0.6 版本相比a)在配置文件和使用方式上没有变化;b)直接替换之前的AOE jar 包即可。3)AOE1.1.6与 1.0.9 版本相比a)在配置文件和使用方式上没有变化;b)直接替换之前的AOE jar 包即可。4)AOE1.1.9与 1.1.6 相比a)修改配置文件1)增加权限 2)名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 20 页 -3)4)5)value 值修改为自己app 实现 AoeCallback 的路径,比如com.iss.sric.aoe.ThreeCallbackb)直接替换之前的AOE jar 包即可。6、编制历史版本
25、号更新时间主要内容或重大修改1.0.0 2012-8-21 创建1.0.1 2013-9-12 增加通知功能1.0.2 2014-1-16 解决升级覆盖的问题,较少开发包大小1.0.3 2014-3-26 增加配置参数“aoe_network_state”,控制中间件是否自动联网1.0.4 2014-04-14 增加对开锁及安装app的监听1.0.5 2014-5-13 新增对点击通知下载和点击通知打开指定名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 20 页 -界面功能的支持1.0.6 2014-6-5 增加对短消息的支持,修改下载框默认字体,增加对“下载”按钮点击的流水上
26、报1.0.7 2014-6-26 内部版本1.0.8 2014-7-10 内部版本1.0.9 2014-7-30 优化终端注册机制、解决终端重复收消息的问题、解决部分终端重复提示上行短信的问题1.1.6 2014-11-12 1.1.0至 1.1.5均为内部版本,与1.0.9相比优化了 AOE 服务的健壮性、解决了一些bug、适配了 2.3 以下的操作系统等1.1.9 2015-2-12 1.1.7至 1.1.8均为内部版本,1.1.9版本与之前版本相比修改了一些bug,提高 AOE服务的健壮性1.2.0 2016-1-29 1、优化连接机制,提升弱网环境下的稳定性2、优化保活策略,提升达到率
27、。1.2.1 2016-5-31 1.添加 AoiCallback的状态查询进行2.新增接口说明,用于应用获取推送运行情况7、附录7.1 状态码说明编码段详细编码返回信息说明1000AOE_SERVICE_RUNNEDAOE服务运行中1001AOE_SERVICE_NOT_RUNNEDAOE服务未运行2010AOI_DNS_REG_SUCC DNS注册成功2011AOI_DNS_REGINGDNS注册中2012AOI_DNS_REG_FAILEDDNS注册失败2013AOI_DNS_REG_TIMEOUTDNS注册超时2020AOI_PASSKEY_GET_SUCC网关密钥获取成功2021AO
28、I_PASSKEY_GETTING网关密钥获取中2022AOI_PASSKEY_GET_FAILED网关密钥获取失败2023AOI_PASSKEY_GET_TIMEOUT:网关密钥获取超时2030AOI_GW_DATA_CONNECTION_OPEN推送通道认证成功2031AOI_GW_REGING推送通道认证2033AOI_GW_REG_TIMEOUT推送通道认证失败3000NETWORK_AVAILABLE网络状态正常3001NETWORK_NOT_AVAILABLE网络状态不可用名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 20 页 -名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 20 页 -