BlackBerry 应用程序开发者指南 第一卷:基础–第11章 使用位置信息
11
第11章 使用位置信息
位置API
代码实例
位置API
位置API(javax.microedition.location)允许应用程序获取BlackBerry设备的全球定位系统(GPS)位置。GPS位置是BlackBerry设备中的地理坐标(经度和纬度)。根据使用
的位置方法,应用程序也可以获得BlackBerry设备的速度,方向,以及路线。
获得GPS位置的方法
方法
常数
描述
Cellsite
GPS_AID_MODE_CELLSITE
本方法使用活动的蜂窝(cellsite) 塔的GPS位置来提供第一个有序GPS信息。它提供最不精确的位置信息;虽说如此,但它是最快的位置模式。
注:如果使用本模式,将得不到方向,路径,以及速度获。这个位置方法需要网络连接以及运营商的支持。
Assisted
GPS_AID_MODE_ASSIST
本方法使用网络为设备的芯片提供天文卫星数据。它比自动模式提供GPS位置更快些,并且比蜂窝模式更精确。
注:本位置方法需要网络连接以及运营商的支持。
Autonomous
GPS_AID_MODE_AUTONOMOUS
本方法在没有网络的协助下使用BlackBerry上的GPS芯片。自动模式提供第一个GPS位置最慢。
为选择GPS位置方法指定原则
通过创建一个javax.microedition.location.Criteria类,调用合适的set方法,然后传递这个LocationProvider.getInstance()实例来指定需要的原则.
注:为创建一个缺省规则的LocationProvider实例,调用LocationProvider.getInstance(null).
Criteria criteria = new Criteria();
// Allow cost.
criteria.setCostAllowed(true);
// Require a horizontal accuracy of 50 metres.
criteria.setHorizontalAccuracy(50);
// Require a vertical accuracy of 50 metres.
criteria.setVerticalAccuracy(50);
LocationProvider provider = LocationProvider.getInstance(criteria);
选择GPS位置方法的原则
建议的GPS位置方法
水平精确度
垂直精确度
费用
耗电量
自动
需要
需要
不允许
不可用
自动
需要
需要
允许
低,一般或没有需求
第一次修正:协助
后续修正:自动
需要
需要
允许
高
自动
不需要
不需要
不允许
一般,高或没有需求
协助
不需要
不需要
允许
一般,或没有需求
第一次修正:协助
后续修正:自动
不需要
不需要
允许
高
蜂窝
不需要
不需要
允许
低
注:如果BlackBerry无线设备有一个卫星的障碍视图,GPS可能不可用。当设备在室内或被建筑物,树,以及密云围绕,这是有可能发生的。
获取BlackBerry设备的位置
第一次获取BlackBerry设备位置所花的时间依赖多方面的因素,例如选择的GPS模式,GPS的信号强度。在自动模式中,典型的至少需要2分钟,在协助模式。典型的是至少需要30秒。
如果GPS修正在10秒的请求内发生后,连续请求的平均响应时间为1到2秒,这取决位置条件。
注:如果你使用了一个可能花费用户资费的位置方法,不要经常查询BlackBerry设备的位置。
为了指定一个需要的响应事件,调用Criteaia.setPreferredReponseTime(),以毫秒为单位提供需要的时间。
获取BlackBerry设备的位置
调用LocationProvider.getLocation(int),提供一个以毫秒为单位的超时时间。
注:如果LocationProvider.getLocation(int)早事件线程调用,LocationExcept会抛出。
try {
// Specify -1 to have the implementation use its default timeout value
// for this provider.
Location location = provider.getLocation(-1);
}
catch (Exception e) {
// handle [...]
Confach发表于 April 23, 2008 6:47 am | 留言 |文档
