13 


使用 Location API

JSR 179 Location API 使应用程序可以使用设备的定位功能。例如,包含全球定位系统 (Global Positioning System, GPS) 硬件的某些设备,以及可以接收来自无线网络定位信息的其他设备。Location API 提供了定位信息的标准接口,而不考虑基础技术。

在 Location API 中,位置提供者可封装定位方法并提供有关设备位置的信息。应用程序通过指定所需的标准(例如所需的精度和响应时间)请求提供者。如果相应的实现可用,则应用程序可以使用它获取有关设备物理位置的信息。

Sun JavaTM Wireless Toolkit for CLDC 包括模拟的位置提供者。您可以使用仿真器的“外部事件”窗口指定仿真器认为其应当所处的位置。另外,您可以配置提供者本身的属性,并可以管理路标的数据库。


13.1 设置仿真器运行时的位置

您可以指定仿真器运行时的模拟位置。要执行此操作,请从仿真器窗口的菜单中选择 "MIDlet" >“外部事件”。单击“位置”选项卡。请参见图 13-1

图 13-1 控制仿真器中的位置

选择了“位置”选项卡的外部事件生成器

在选项卡的“位置”区域中,您可以填写纬度、经度、海拔高度、速度和方向的值。使用 Location API 的应用程序可以检索这些值作为仿真器的位置。

要进行更详细的测试,您可以设置随时间描述运动的位置脚本。位置脚本是由位置(称为航点)以及相关时间列表构成的 XML 文件。Sun JavaTM Wireless Toolkit for CLDC 通过在位置脚本中的点之间插入新值确定仿真器的当前位置。例如,以下是一个简单的位置脚本,它指定了起点 (time="0") 并在十秒后移动到一个新点。

<waypoints>
  <waypoint time="0"
            latitude="14" longitude="50" altitude="310" />
  <waypoint time="10000"
            latitude="14.5" longitude="50.1" altitude="215" /> 
</waypoints>

海拔高度测量以米为单位,时间值以毫秒为单位。

使用文本编辑器可以创建位置脚本。您可以通过按下“脚本”字段旁边的“浏览”按钮将其装入到“外部事件”窗口。正下方是一些控件,用于播放、暂停、停止和移动到位置脚本的起点和终点。您也可以将时间滑尺拖动到特定点。

某些设备也能测量其方位。要使这种信息可用于您的应用程序,请将“方位”框中的“省/自治区/直辖市”字段更改为“受支持”并填写方位角、垂直倾斜角和旋转角的值。“磁方位”复选框指示方位角和垂直倾斜角测量是与地球的磁场相关还是与真北和重力相关。

要测试您的应用程序如何处理意外的情况,请尝试将“位置提供者”框中的“省/自治区/直辖市”字段更改为“暂时不可用”或“停止服务”。当您的应用程序尝试检索仿真器的位置时,会抛出异常并且您会看到应用程序是如何进行响应的。


13.2 配置位置提供者

您可以使用首选项配置 Sun JavaTM Wireless Toolkit for CLDC 位置提供者的属性。在用户界面中选择“编辑”>“首选项”,然后单击“位置”。

图 13-2 配置位置提供者

选择了“位置”类别的“首选项”窗口

使用“位置”选项卡中的字段,您可以指定工具包的内置位置提供者的属性。在与 Criteria 类应用程序相对应的首选项中指定的属性用于请求位置提供者。


13.3 设置路标

正如许多真实设备一样,Sun JavaTM Wireless Toolkit for CLDC 仿真器包括路标存储库系统。路标存储库是具有相关联名称和其他信息的位置的集合。要管理路标存储库,请从菜单中选择“文件”>“实用程序”,并选择“管理路标”然后按“启动”。

图 13-3 路标管理器

用于添加、编辑或删除路标的“管理路标存储库”窗口

路标管理器显示单个路标存储库的内容。JSR 179 要求最少使用一个路标存储库,该存储库称为默认存储库。要选择其他路标存储库或创建新的路标存储库,请从窗口顶部的“路标存储库”组合框中进行选择。

您可以通过单击“管理路标存储库”按钮添加或删除路标存储库。无法对路标存储库进行重命名。

路标可以与特定于路标存储库的类别相关联。当前路标存储库的类别显示在窗口的左窗格中。您可以使用列表底部的按钮添加或删除类别。如果希望仅显示匹配的路标,请选中一个或多个类别。您也可以选中“未设置类别”以显示无关联类别的路标。

路标管理器的右窗格列出了当前路标存储库中的路标。单击路标以查看右窗格底部列出的详细信息。

要添加新路标,请单击“添加”并相应地填写字段。单击“编辑”以更改当前选定的路标。最后,按“删除”以删除当前选定的路标。

图 13-4 添加或编辑路标

选择了“常规”选项卡的“路标”窗口

您也可以使用主窗口中的“指定类别”指定路标的类别。