BlackBerry Push Service SDK - URL-адрес сервера BPS

Чтобы понять, как реализован сервис Push в BlackBerry, я установил SDK Push Service и выполнил 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. 

Может ли кто-нибудь вести меня через это. При вводе подробностей нам необходимо указать «URL-адрес сервера BPS» и «URL-адрес приложения Push Initiator». Я получил данные учетной записи от BlackBerry и содержит PPG Base Url как «cpXXX.pushapi.eval.blackberry.com», где XX должен быть заменен идентификатором поставщика контента (идентификатор поставщика контента). Включена ли эта ссылка для «URL-адреса сервера BPS» и «URL-адрес приложения Push Initiator»? Я сделал ключ в этом и получил вышеуказанную ошибку в «Register».

Пожалуйста, направляйте.

1
nl ja de

1 ответы

Вы должны были получить почту с вашими учетными данными как для серверного приложения, так и для клиентского приложения Blackberry. Для клиентского приложения они должны выглядеть так:

    Application ID: -
    PPG Base URL: http://cpXXX.pushapi.eval.blackberry.com
    Push Port: 

Как вы можете видеть, идентификатор приложения имеет две части. Префикс перед тире - это ваш CPID, а остальное - id. Затем у нас есть URL-адрес, где нам нужно будет заменить XXX на CPID (обратите внимание, что CPID обычно представляет собой 4-значное число, поэтому было бы лучше, если бы они использовали XXXX в качестве заполнителя). Наконец, номер порта, который имеет до 5 цифр.

С этими параметрами в вашем приложении BB вы бы закодировали что-то вроде этого:

    String id = "";
    String url = "http://cp.pushapi.eval.blackberry.com"; //Make sure it is http and not https, and check you have replaced  with the appid prefix.
    int port = ;
    byte serverType = ;

    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 Перезвони.

2
добавлено
Очень хорошо объяснено. Просто ответ, который я искал, чтобы убрать мои сомнения по базовому URL. благодаря
добавлено автор Sarah, источник
Что касается PushApplicationDescriptor.SERVER_TYPE_BPAS или PushApplicationDescriptor.SERVER_TYPE_NONE>; Я читал, что клиентские приложения push push должны указывать тип сервера для регистрации. Если сервер не отслеживает приложения, например, BlackBerry Enterprise Server без модуля BPAS, то следует использовать значение PushApplicationDescriptor.SERVER_TYPE_NONE. В этом случае нет учетной записи, и приложение push-приложения на стороне клиента начинает прослушивать push-сообщения сразу. Мне нужно прослушивать push-сообщения (получать). Должен ли я использовать server_type_none?
добавлено автор Sarah, источник
В таком случае, я думаю, да. (Я всегда использовал BIS push-серверы, поэтому я всегда передавал SERVER_TYPE_BPAS в качестве аргумента)
добавлено автор Mister Smith, источник