1

为了了解 BlackBerry 中的 Push 服务是如何实现的,我安装了 Push Service SDK 并遵循Push_Service_SDK-Getting_Started_Guide。彻底按照这些步骤,在从应用程序“注册”自己时,我收到以下错误:

Request to register failed. Caused by java.io.IOException: Network operation [Subscribe] failed. Make sure that Content Provider URL is accesible. 

谁能指导我完成这个。键入详细信息时,我们需要提供“BPS 服务器 URL”和“Push Initiator 应用程序 URL”。我收到了来自 BlackBerry 的凭据详细信息,其中包含 PPG Base Url 作为“cpXXX.pushapi.eval.blackberry.com”,其中 XX 需要替换为 CPID(内容提供商 ID)。是否要为“BPS 服务器 URL”和“Push Initiator 应用程序 URL”键入此链接?我确实输入了这个并在“注册”上收到了上述错误。

请指导。

4

1 回答 1

2

您应该已经收到一封邮件,其中包含您的服务器应用程序和黑莓客户端应用程序的凭据。对于客户端应用程序,它们应该如下所示:

    Application ID: <CPID(4 chars)>-<id(35 chars)>
    PPG Base URL: http://cpXXX.pushapi.eval.blackberry.com
    Push Port: <port(5 chars)>

如您所见,App id 有两个部分。破折号前的前缀是您的 CPID,其余的是 id。然后我们有一个 URL,我们需要用 CPID 替换 XXX(请注意,CPID 通常是一个 4 位数字,所以如果他们使用 XXXX 作为占位符会更好)。最后是最多 5 位的端口号。

使用这些参数,在您的 BB 应用程序中,您将编写如下代码:

    String id = "<your full app id here>";
    String url = "http://cp<CPID>.pushapi.eval.blackberry.com"; //Make sure it is http and not https, and check you have replaced <CPID> with the appid prefix.
    int port = <port>;
    byte serverType = <PushApplicationDescriptor.SERVER_TYPE_BPAS or
                        PushApplicationDescriptor.SERVER_TYPE_NONE>;

    ApplicationDescriptor descriptor = ApplicationDescriptor.currentApplicationDescriptor();
    PushApplicationDescriptor pushDescriptor = new PushApplicationDescriptor(id, port, url, serverType, descriptor);

    // This is how we would register the client app:
    PushApplicationRegistry.registerApplication(pushDescriptor);

执行该行后,如果一切正常(注册需要一些时间,建立了一些连接),您可以调用PushApplicationRegistry.getStatus或通过onStatusChange回调检查注册状态。

于 2013-01-29T10:52:48.267 回答