我是 Java 开发人员,但最近我得到了一些与 BlackBerry Push Service 实现相关的项目。我的目标是为 Push Initiator (即内容提供者)编写服务器端实现。但要对此进行测试,我还需要使用一些支持推送的示例应用程序。
我已经阅读了 BB 开发人员指南并完成了以下步骤:
注册 BB Push 服务评估 API 并收到确认邮件,其中包含所有必需的详细信息,例如:appId、pwd、BIS 的 PPG Url、端口号等。
为low-level-Push-Imitator(即网络应用程序内容提供者)安装了BB Push安装程序和启用了示例推送的应用程序(在BB Push服务开发人员指南中提供了PushDemo_sample)。
现在我正在模拟器上测试这个支持推送的应用程序并尝试注册。但是由于示例应用程序在注册 BB Push 服务器之前尝试先订阅 Push-Initiator(CP)。我已经评论了下面的代码,因为我不想要订阅部分。RegisterCommand 类处理订阅和注册。
protected void execute() throws Exception {
// first we register with Content Provider
Logger.log("Reached RegidterCommand execute() method .. but eacapingCMD_SUBSCRIBE");
//ContentProviderProtocol.performCommand( ContentProviderProtocol.CMD_SUBSCRIBE, username, password, isEnterprise, tx ); // commented
// if the registration is successful we register with BPS
Logger.log("Now Going to register with PPG");
BpasProtocol bpasProtocol = PushLibFactory.getBpasProtocol();
bpasProtocol.register( tx, isEnterprise );
// update the registered state
PersistentStorage.setRegistered( true );
}
但是在使用正确的 appId、PortNumber 和 BPS 服务器 URL、虚拟推送发起程序应用程序 url 配置应用程序后,当我单击注册时,它显示了一些 IOException:
Command 'register' failed with error: java.io.IOException: could not find a service book entry for IPPP.
在模拟器上的应用程序日志中,我可以看到它正在尝试打开 BB Push eval url,并在 url 之后附加了一些参数,如下所示:
Opening URL: http://cpXXXX.pushapi.eval.blackberry.com/mss/PD_subReg?serviceid=XXXX-sxxxxxxxxxxxxxxxxxxxxxxxxxxxx&osversion=7.1.0.318&model=9900&deviceside=false&ConectionType=mds-public
在这里,我只是想用 BB Push 服务器注册我的模拟器。不能在模拟器上测试推送服务吗?或者我做错了什么?
还有一个疑问,示例推送应用程序的 PushLib50 类的 register() 方法如何在 eval URL 之后附加额外参数?
请帮忙。指出我在实施推送服务时是否做错了什么。