在模拟器上工作时,Blackberry MapView无法在设备上运行

时间:2011-08-08 07:12:46

标签: blackberry maps android-mapview

我正在使用使用MapView的BlackBerry应用程序。 目前,我只展示了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 个答案:

答案 0 :(得分: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.
}

答案 1 :(得分:1)

检查此问题的更好方法是检查LBSConfig或其变体的ServiceBook条目。

允许不再在计划中但曾由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;
}