-1

アプリケーションで gps 位置情報を使用していますが、建物内にいると毎回要求が失敗 (タイムアウト エラー) しますが、建物内にいる場合、デバイスの位置設定オプションから位置情報を更新すると、位置情報がうまく更新されます。

これが私のコードです

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();

お知らせ下さい。

アリ

4

1 に答える 1

3

コスト設定をfalse ( myCriteria.setCostAllowed(false);) に設定すると、GPS モードが自律型に設定されます(以下の表は、ロケーション ベースのサービス開発ガイド - 基準マッピング プロパティから取得したものです。

ここに画像の説明を入力

自律モードは、GPS 衛星のみに依存します (GPS モードの詳細については、こちらを参照してください)。

このモードでは、BlackBerry デバイスの GPS 受信機を使用して位置情報を取得します。このモードは、屋内や多くの物理的障害物の近くでは使用できません。また、最初の GPS 修正のために 4 つ以上の衛星と完全に同期するのに数分かかる場合があります。

それがあなたのリクエストが失敗する理由です。他の GPS モードを使用してみてください:アシストまたはセルサイト


アシストモード

アシスト モードは、ワイヤレス ネットワーク上の GPS 衛星とサーバーに依存します。このモードでは、無線ネットワークを使用して衛星情報を取得します。このモードでは、最初の GPS フィックスをすばやく取得できます。

アシスト モードの場合は、次のスニペットを使用します (いくつかのアシスト モードがあることに注意してください)。

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

基地局モード

セルサイト モードは、地理位置情報サービスまたはワイヤレス ネットワークに依存して、現在の基地局の位置情報を提供します。このモードはワイヤレス ネットワークを使用して最初の GPS 修正を行い、一般的に最速のモードと見なされます。このモードでは、速度や方位などの BlackBerry デバイス追跡情報は提供されません。

セルサイト モードの場合、次のスニペットを使用します。

Criteria myCriteria = new Criteria();
myCriteria.setPreferredPowerConsumption(Criteria.POWER_USAGE_LOW);
myCriteria.setHorizontalAccuracy(Criteria.NO_REQUIREMENT);
myCriteria.setVerticalAccuracy(Criteria.NO_REQUIREMENT);
myCriteria.setCostAllowed(true);
于 2012-04-12T20:32:10.950 に答える