2011-08-08 122 views
0

我正在使用使用MapView的BlackBerry應用程序。目前,我只顯示MapView,僅此而已。 這是我使用它的代碼片段:黑莓MapView不能在設備上工作,而在模擬器上工作

public class MapScreen extends MainScreen { 
    private MapField map; 

    public MapScreen() { 
    super(MainScreen.NO_VERTICAL_SCROLL); 

    map = new MapField(); 
    map.moveTo(new Coordinates(50.847573,4.713135, 0)); 
    add(map); 

    //... 
    } 

    //... 
}

我使用net.rim.device.api.lbs.MapField,因爲我必須與OS 5.0

在模擬器兼容,一切都很好,它的工作。 但是現在我將它部署在設備上,我看到一個白色屏幕...

該設備有互聯網連接,但只能通過Wi-Fi。首先,我認爲這是問題所在,但根據"Blackberry services that are available over Wi-Fi connections",這應該不成問題。

那麼,有沒有人知道它爲什麼不能在設備上工作,以及我如何解決這個問題? 謝謝

回答

2

你說「設備有互聯網連接,但只能通過Wi-Fi」,這使我相信你沒有配備BlackBerry數據計劃的真實設備。您需要該計劃才能訪問任何BlackBerry服務,即使通過Wi-Fi。

要檢查您可以使用適當的連接:

if (CoverageInfo.isCoverageSufficient(CoverageInfo.COVERAGE_BIS_B) { 
    // Connection will support BlackBerry services 
} else if (CoverageInfo.isCoverageSufficient(CoverageInfo.COVERAGE_MDS) { 
    // Connection will support BlackBerry services if BES allows the connection to BIS servers. 
} 
+0

是的,我在沒有SIM卡的設備上運行它。所以如果用戶有一個沒有BlackBerry服務的數據計劃,那麼就沒有可能使用MapView? 我有沒有可能檢測到它不可用,所以我可以顯示一條消息? – Arne517

+0

沒有BlackBerry數據計劃的用戶將無法使用BlackBerry地圖。他們可能能夠根據他們所擁有的服務使用Google地圖。檢測代碼編輯到我的答案。 – Richard

+0

超級!感謝您的回答和檢測代碼:-) – Arne517

1

檢查這更好的辦法是檢查ServiceBook條目LBSConfig或其變體。

這允許設備不再在計劃中,但曾經由LBS配置過的設備正常工作。

private static final boolean have_lbs() { 
    ServiceBook sb = ServiceBook.getSB(); 
    ServiceRecord[] records = sb.getRecords(); 
    int count = records.length; 
    for (int ii = 0; ii < count; ++ii) { 
     if (records[ii].getCid().toUpperCase().startsWith("LBS")) 
      return true; 
    } 
    return false; 
} 
相關問題