黑莓位置问题

时间:2012-04-12 19:08:08

标签: blackberry geolocation gps location

我的应用程序使用gps位置,但每次如果我留在建筑物内部请求失败(超时错误)但是当我从设备位置设置选项中刷新位置时,如果我也留在建筑物中,则位置会刷新。< / p>

这是我的代码

Criteria myCriteria = new Criteria();
myCriteria.setCostAllowed(false);
LocationProvider myLocationProvider = LocationProvider.getInstance(myCriteria);

Location myLocation = myLocationProvider.getLocation(((int)timeOutInMiliseconds/1000));
lastLatitude = myLocation.getQualifiedCoordinates().getLatitude();
lastLongitude = myLocation.getQualifiedCoordinates().getLongitude();
lastAltitude = myLocation.getQualifiedCoordinates().getAltitude();
lastAccuracy = myLocation.getQualifiedCoordinates().getHorizontalAccuracy();
lastSpeed = myLocation.getSpeed();

请告知。

阿里

1 个答案:

答案 0 :(得分:3)

将费用设置设为 false myCriteria.setCostAllowed(false);)后,您将GPS模式设置为自主(下表取自{{ 3}}

enter image description here

自主模式仅依赖于GPS卫星(请参阅有关GPS模式的更多信息Location based services development guide - Criteria mapping properties)。

  

此模式使用BlackBerry设备上的GPS接收器检索位置信息。此模式不能在室内或靠近许多物理障碍物使用,并且可能需要几分钟才能与四颗或更多卫星完全同步以进行第一次GPS定位。

这就是您的请求失败的原因。尝试使用其他GPS模式:辅助 cellsite


辅助模式

  

辅助模式依赖于无线网络上的GPS卫星和服务器。此模式使用无线网络检索卫星信息。此模式可以快速检索第一个GPS定位。

对于辅助模式,请使用此片段(值得注意的是,有几种辅助模式):

Criteria myCriteria = new Criteria();
myCriteria.setPreferredPowerConsumption(Criteria.POWER_USAGE_MEDIUM);
myCriteria.setHorizontalAccuracy(100);
myCriteria.setVerticalAccuracy(100);
myCriteria.setCostAllowed(true);

Cellsite 模式

  

Cellsite模式依赖于地理定位服务或无线网络来提供当前基站的位置信息。此模式使用无线网络实现第一次GPS定位,通常被认为是最快的模式。此模式不提供BlackBerry设备跟踪信息,如速度和方位。

对于cellsite模式,请使用以下代码段:

Criteria myCriteria = new Criteria();
myCriteria.setPreferredPowerConsumption(Criteria.POWER_USAGE_LOW);
myCriteria.setHorizontalAccuracy(Criteria.NO_REQUIREMENT);
myCriteria.setVerticalAccuracy(Criteria.NO_REQUIREMENT);
myCriteria.setCostAllowed(true);