WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章手机编程BlackBerryBlackBerry 应用程序开发者指南 第一卷:基础--第11章 使用位置信息

BlackBerry 应用程序开发者指南 第一卷:基础--第11章 使用位置信息
作者:佚名  来源:本站整理  发布时间:2008-3-14 23:40:01

作者:Confach 发表于2006-04-28 21:48
版权信息:可以任意转载, 转载时请务必以超链接形式标明文章原始出处 和作者信息.
http://www.cnblogs.com/confach/articles/387915.html

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秒的请求内发生后,连续请求的平均响应时间为12秒,这取决位置条件。

:如果你使用了一个可能花费用户资费的位置方法,不要经常查询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 LocationException, InterruptedException, SecurityException

    // and IllegalArgumentException

}

获取位置信息

Location类提供方法来获取位置信息,例如GPS坐标,以及路径。

RIM的实现不支持文本地址信息。结果,getAddressInfo()方法会空。

QualifiedCoordinates coordinates = location.getQualifiedCoordinates;

float speed = location.getSpeed();

float course = location.getCourse();

注册一个位置监听者

实现LocationListener方法。调用LocationProvider.setLocationListener()注册你的实现。

:一个位置监听者可以与一个指定的位置提供者项关联。应用程序在一个独立的线程上典型用来监听更新。


import javax.microedition.LocationProvider.*;

 

public class SampleLocationApp {

    public static void main (string[] Args) {

       // ...

       provider.setLocationListener(new SampleLocationListener(), 0, 60, 60);

       }

    }

 

class SampleLocationListener implements LocationListener {

    void locationUpdated(LocationProvider provider, Location location)

    {

    // Respond to the updated location.

    // If the application registered the location listener with an interval of

    // 0, the location provider does not provide location updates.

    }

   

    void providerStateChanged(LocationProvider provider, int newState) {

       switch (newState) {

         case LocationProvider.AVAILABLE :

             // The location provider is available.

             break;

         case LocationProvider.OUT_OF_SERVICE :

             // The location provider is permanently unavailable.

             // Consider cancelling the location listener by calling

             // provider.setLocationListener() with null as the listener.

             break;

        case LocationProvider.TEMPORARILY_UNAVAILABLE :

            // The location provider is temporarily unavailable.

            break;

            }

       }

}


[1] [2] [3] [4]  下一页

[] [返回上一页] [打 印]
文章评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码