SUP101: Blackberry работает на симуляторе, но не на устройстве - PullRequest
0 голосов
/ 11 октября 2011

У меня проблема с получением учебника для работы на устройстве

он отлично работает в симуляторе, но когда я пытаюсь запустить его на устройстве, он не работает.

Я положил несколько журналов, и, кажется, из функции входа в систему

===JASONROGERS292C 2480 supAdmin s3pAdmin
[0.0] TAC:TAI.handleRegRsp : ALREADY_REGISTERED
[0.0] TAC:TAI.handleRegRsp : (ALREADY_REGISTERED), registered entry found:{{APN=,id=2,state=CLOSED,waf=WAF[0.0] _3GPP,keepAlive=300,IP=0.0.0.0,dnsSrv=0.0.0.0}}
[0.0] [TMM.TunnelAllocator]:runNotReadyListeners: registered listeners found
[0.0] TAC:TAI.handleListenerDeRegRsp: not existent tunnel in TAC, tid=2
[0.0] SIM cache not loaded

Кто-нибудь понял, что я забыл сделать при запуске кода на устройстве?

Приветствие Jason


редактирование:

пара ссылок на то, что я делаю (я могу опубликовать весь код, который хотят люди, но это стандартная форма сгенерированного кода SUP, что означает много кода)

Учебное пособие http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc01214.0200/doc/html/title.html

zip к уже готовому уроку: http://www.sdn.sap.com/irj/bpx/index?rid=/webcontent/uuid/40ea4956-b95c-2e10-11b3-e68c73b2280e


Решение: Мне не хватало пары вещей: 1) Укажите, что приложение должно использовать Wifi

SUP101DB.getSynchronizationProfile().setString("transport", "WIFI");

2) Убедитесь, что DNS: в моем случае сервер был локальным для моих окон (через параллели), поэтому мне пришлось указать ip, а не пространство имен

getSynchronizationProfile().setServerName("10.50.30.108");//"JASONSERVER");

1 Ответ

2 голосов
/ 12 октября 2011

Я скачал SUP 101 - BlackBerry Project и проверил источники.

Он не содержит сетевой код в том виде, в котором это делает обычное приложение BB.

Однако я вижу, что класс SUP101.SUP101DB имеет следующий метод:

private static String getSyncTransportSuffix() {
    com.sybase.persistence.ConnectionProfile syncProfile = 
        getSynchronizationProfile();
    return com.sybase.afx.util.NetworkUtil.getTransportUrlSuffix(syncProfile);
}

Таким образом, код использует com.sybase.afx.util.NetworkUtil для получения суффикса URL. Добавляя такой суффикс к URL-адресу, мы указываем нижележащему BB API, какой сетевой транспорт использовать. К сожалению, источники не содержат com.sybase.afx.util.NetworkUtil, чтобы посмотреть, как именно это работает.

Я должен сказать, что даже при собственной разработке Java BB определение правильного сетевого транспорта может оказаться очень сложной задачей. OS 5+ предоставляет новый сетевой API, который намного лучше, но для старых ОС это сложно. Этот проект SUP построен на основе BlackBerry JRE 4.6.1, поэтому он не может использовать новый сетевой интерфейс OS 5+. Кто знает, может быть, SUP просто не может определить правильный сетевой транспорт?

В любом случае, просто несколько идей, чтобы попробовать:

  • проверить настройки APN на устройстве, иногда их необходимо заполнить, чтобы использовать прямую передачу TCP (это зависит от требований беспроводного провайдера). Имя / пароль APN зависят от поставщика услуг беспроводной связи. Обычно поиск в Google позволяет найти правильные настройки APN для провайдера.
  • если ваше устройство имеет WiFi, попробуйте включить его. SUP должен быть достаточно умным, чтобы предпочесть WiFi, если он доступен. В этом случае я предполагаю, что в сети не должно быть проблем.
...