2010-05-28 3 views
1

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

Мой вопрос: может ли проблема с некоторыми работающими и не работающими телефонами иметь отношение к типу сети, в которой они работают на таком GSM-совместимом CDMA, и будет ли код, который перестанет работать на некоторых устройствах, быть одним из следующих области:

1) Слушатели - такие, как MessageListener и телефон Listener

2) Объекты пользовательского интерфейса - простые тестовые ярлыки и кнопки

3) Подключение к веб-сервиса с использованием ksoap2

The A pp в основном прослушивает записи вызовов и sms, а затем отправляет их в веб-службу. Проблема, которую я получаю, заключается в том, что на некоторых устройствах я ничего не вижу в веб-службе. Я не могу действительно активно отлаживать это легко по телефону, поскольку он работает как тест на устройстве в нас (им в южной африке), поэтому мне просто интересно, могу ли я легко получить некоторые объяснения, не испытывая на телефоне и чтобы посмотреть, что произойдет.

Я разработал с v4.7, а устройства в США с v4.6 и v5.0 работают, а еще одна пара устройств (v4.6 и v5.0) не так, я не думаю, что проблема с версией ,

+2

Какое сообщение об ошибке? В чем проблема ? –

+0

Похоже, проблема заключается в том, что он ожидает увидеть хиты на веб-сервере, исходящие из ежевики, в ответ на выполняемые условия (и это работает с тестовым устройством). Но с устройствами, развернутыми в дикой природе, он не видит никаких ударов, даже когда на телефоне выполняются правильные условия. – David

ответ

1

Если вы используете прямой TCP транспорт, то телефоны GSM часто включают APN сети в параметрах соединения URL. Это самая большая проблема использования Direct TCP. Некоторые GSM-операторы устанавливают APN в настройках устройства с фабрики, но многие по-прежнему не делают этого, и это зависит от приложения (или конечный пользователь вводит значения APN в настройки устройства).

Если вы не хотите разбираться с APN для каждой мобильной сети, которую вы планируете поддерживать, то вы можете использовать другой транспорт, такой как WAP2 (который не всегда доступен на всех устройствах) или BIS (что требует членства в программе BlackBerry Alliance).

0

GSM против CDMA не будет иметь (прямую) разницу. ОС может изменить ситуацию, но вы ее протестировали. Если устройство подключено к серверу BES (сервер Blackberry Enterprise Server), которое может иметь эффект, если на устройство введена политика безопасности.

Однако у меня есть ощущение, что это может быть связано с тем, что ваш код не проверяет все условия ошибки и, таким образом, не дает вам ожидаемого поведения, когда Blackberry сталкивается с плохими сетевыми условиями или веб-сервер находится под большой нагрузкой и может ответ или любые другие ошибки, которые могут возникнуть с веб-сайтом (опять-таки проблема BES может быть проблемой, блокируя доступ к вашему веб-сайту).

Например ли ваш код это так:

if(call received) 
    Create Web Request 
    Add call parameters to Web Request 
    Execute Web Request 

Или это выглядит следующим образом:

if(call received) 
    Add call parameters to queue 

if(parameters still in queue) 
    Create Web Request 
    Add parameters to Web Request 
    Execute Web Request 
    if(request was successful) 
    Remove parameters from queue 
+0

Мой код как в вашем втором примере, но я не уверен, как проверить успешную отправку в веб-службу.Я использую ksoap2, который использует метод вызова HTTPTransport, который является методом типа void. – Chris

Смежные вопросы