2010-05-28 70 views
1

我忙於開發一款Java應用程序以在黑莓上運行,但在我測試的某些設備上,代碼似乎並沒有工作,並且即時查找問題所在的位置很困難。網絡差異

我的問題是:一些電話工作而不工作的問題可能與他們在GSM和CDMA上運行的網絡類型有關,並且會停止在某些設備上工作的代碼位於以下某個位置領域:

1)監聽器 - 諸如消息監聽和電話監聽

2)UI對象 - 簡單的測試標籤和按鈕

3)連接到使用kso​​ap2

的一個Web服務pp基本上監聽呼叫和短信記錄,然後將它們發送到Web服務。我遇到的問題是在某些設備上,我看不到任何Web服務。我真的不能在手機上輕鬆地進行主動調試,因爲它在我們的設備上進行測試(即時在南非),所以我只是想知道如果我可以輕鬆地得到一些解釋而無需在手機上進行測試並看看會發生什麼。

我已經開發了v4.7和美國的設備與v4.6和v5.0已經工作,另一對設備(v4.6和v5.0)沒有,所以我不認爲它的版本問題。

+2

什麼是錯誤信息?問題是什麼 ? – 2010-05-28 10:17:37

+0

聽起來像問題是他希望看到來自黑莓的Web服務器響應滿足條件的命中(並且這與測試設備一起工作)。但是在野外部署的設備中,即使在手機上遇到了正確的條件,他也沒有看到任何命中。 – David 2010-05-28 13:16:45

回答

1

如果您使用的是直接TCP傳輸,則往往需要GSM手機,包括網址的連接參數中的APN。這是使用Direct TCP最大的難點。一些GSM運營商確實在工廠設置了設備設置中的APN,但許多仍然沒有這樣做,並且取決於應用(或者讓最終用戶將APN值輸入到設備設置中)。

如果您不想處理計劃支持的每個移動網絡的APN,那麼您可能需要使用另一種傳輸方式,如WAP2(在所有設備上並不總是可用)或BIS (這需要加入黑莓聯盟計劃)。

0

GSM vs CDMA不會有(直接)差異。操作系統可以有所作爲,但你已經測試過。如果設備連接到BES(黑莓企業服務器),如果將安全策略下推到設備上,BES(黑莓企業服務器)可能會產生影響。

但是我有一種感覺,它可能與您的代碼沒有檢查所有錯誤條件有關,因此在黑莓遇到糟糕的網絡條件或Web服務器處於高負載狀態時不會給您預期的行爲沒有迴應,或任何其他網站可能導致的錯誤(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

我的代碼是在你的第二個例子,但我不知道如何檢查成功發送到Web服務。我正在使用kso​​ap2,它使用HTTPTransport的調用方法,這是一種無效類型的方法。 – Chris 2010-05-28 13:30:39