彩云企业消息推送平台编程指南.pdf
北京彩云荣光软件有限公司 1 彩云企业消息推送平台编程指南彩云企业消息推送平台编程指南 (Ver 1.0)北京彩云荣光软件有限公司北京彩云荣光软件有限公司 北京彩云荣光软件有限公司 2 1.彩云企业消息推送平台介绍彩云企业消息推送平台介绍 彩云企业消息推送平台是由彩云荣光软件公司开发提供的企业级的消息推送平台。该平台的特点是使用简单,工作可靠。用户只要在自己的移动 App 内加入对平台 API 的调用,就具备了 24 小时在线的消息接收能力。无论移动设备重启,网络切换,都能保证可靠的接收消息。API 调用只需要一个函数调用即可。消息发送工作同样简单,无论是网络服务,还是桌面应用,都可以调用API 向移动设备推送消息。1.1 平台结构 对开发者而言,了解系统的结构和工作原理,对开发是非常有帮助的。下图是彩云消息推送平台的工作过程和原理:1.Push Request2.Send Message3.Get MessagePush ServerUser Message SenderAnroid App 开始工作时,首先由移动客户端向推送服务器发送一个请求,然后等待推送服务器的返回。此请求包含了客户端的标识信息,以识别不同的客户端。推送服务器不会立刻返回数据给客户端,此时客户端和服务器之间的连接处于保持状态。当用户的应用服务器有消息要发给某个用户时,就向推送服务器发送请求,推送服务器根据客户端的标识,找到该客户端的连接,将消息发给移动客户端。移动客户端得到消息后,可以进行合适的通知(振铃,闪光等)或者处理,以通知用户。然后客户端再次开始一个推送周期。1.2 使用要求 用户标识包括两部分,公司 ID 和用户 ID。公司 ID 就是消息发送方的公司标识。访问 https:/ 进行注册 北京彩云荣光软件有限公司 3 就可以获得推送服务帐号。用户 ID 是您分配给您的用户的 ID,比如用户的名字,ID 号,邮件地址等。2.API 使用使用 2.1 客户端开发 1)将 glorypush.jar 文件,复制到您的 Android 工程下面的 libs 目录(注意,这个目录名是 Android 固定库目录,不能使用其他名字),在 Eclipse 里面刷新工程。2)在您的 Activity 里面,加入代码,代码中的代码中的 companyId,要替换成您要替换成您注册时输入的注册时输入的公司标识公司标识。密码为注册密码为注册时使用的密码。时使用的密码。北京彩云荣光软件有限公司 4 3)定义一个 Reciever 类,以在收到推送消息时,得到通知。推送消息保存在 BroadcastReceiver 收到的 Intent 对象中。可以用下面的调用获得 intent.getStringExtra(CallbackInfo.KEY_REPLY_MSG);PushClient myPushClient;private final static String companyId=MyCompany;Override public void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.main);myPushClient=new PushClient(this,companyId);startPush();private void startPush()String clientId=;/your user ID String pkgName=com.pushclient;/you package name String action=com.pushclient.NewMessage;/your receiver action myPushClient.startPush(clientId,CallbackInfo.INTENT_BROADCAST,pkgName,action,0);/myPushClient.startPush(clientId,CallbackInfo.INTENT_ACTIVITY,pkgName,com.pushclient.PushClientActivity,Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_SINGLE_TOP);北京彩云荣光软件有限公司 5 4)修改 Android 工程下面的 AndroidManifest.xml,在 application 标签之间,加入下面的内容 public class NewMessageReceiver extends BroadcastReceiver public NewMessageReceiver()Override public void onReceive(Context context,Intent intent)String message=intent.getStringExtra(CallbackInfo.KEY_REPLY_MSG);showNotification(context,intent);北京彩云荣光软件有限公司 6 至此,你的 Android 应用就具备了接收推送消息的能力。2.2 消息发送程序 消息发送代码可以嵌入在您的 J2EE 程序中,也可以放在你的桌面应用程 北京彩云荣光软件有限公司 7 序中。消息发送程序,需要在 class path 中引入 glorypushaccess.jar 程序包。完整的例子代码,请登录http:/下载。3.其他其他 1)消息类型 消息为字符串类型,最大长度为 1000 字节(中文要按照编码后的字节长度计算,编码使用 UTF-8 字符)2)客户端通知方式 目前客户端支持两种通知类型。一种是发送广播,客户端在调用 startPush 时,intentType 指定为CallbackInfo.INTENT_BROADCAST。在这种模式下,packageName 参数被忽略。action 为发送的广播。flags 参数也被忽略。当有推送消息到达时,action 参数指定的广播将会被发送。推送消息被保存在 intent 中传递给广播接收者。广播接收者可以使用键值 CallbackInfo.KEY_REPLY_MSG 获得推送的消息。myPushClient.startPush(clientId,public class PushAccessTest private final static String companyId=MyCompany;private final static String clientId=;private final static String password=123456;public static void main(String args)PushAccess a=new PushAccess(companyId,password);if(!a.sendMessage(clientId,args0)System.exit(1);北京彩云荣光软件有限公司 8 CallbackInfo.INTENT_BROADCAST,pkgName,action,0)另一种通知模式,是启动一个 Activity。客户端在调用 startPush 时,className 参数要指定一个 Activity 类的名字。packageName 是你的应用程序的包名字。flags 变量里面必须至少包含 FLAG_ACTIVITY_NEW_TASK 标志,否则将无法正常启动 Activity。推荐也加入 FLAG_ACTIVITY_SINGLE_TOP 属性,这样可以避免每次有消息都启动新的 Activity,给用户造成困惑。myPushClient.startPush(clientId,CallbackInfo.INTENT_ACTIVITY,pkgName,com.pushclient.PushClientActivity,Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_SINGLE_TOP)大多数情况应该使用广播的通知方式。4.SDK SDK 中的内容包括 供手机端软件使用的类库 供消息发送软件使用的类库,以及消息发送例子程序 消息发送例子程序 手机端 Android 例子的完整工程 SDK 包中提供了手机端和消息发送端的使用例子,可以作为测试用。北京彩云荣光软件有限公司 9 PushClient 是手机客户端,运行在 Android2.1 以上平台上。将 PushClient.apk 安装到您的移动设备上后,打开 PushClient,在公司标识输入框内,输入您注册时使用的公司标识,在客户端 ID 号框内,输入您分配给您的客户的 ID 号。点击启动推送,就进入到消息推送状态。glorypushaccess.jar 是消息发送软件,手机端启动推送后,即可以想其发送消息。glorypushaccess 的用法如下: