10

問題:

Fusion Location Provider API で主張されているように、位置情報の更新が屋内で機能しない。

どうしたの:

  1. LocationClientAndroidアプリで使用して最新のロケーションAPIを実装して、ロケーションの更新を取得しようとしました。
  2. 屋外でテストしている間、私のAndroidアプリは問題なく動作します。
  3. ただし、屋内 (任意の建物内) でテストすると、位置情報の更新は行われません。

予想される行動:

新しい API によると、屋内にいる間に建物周辺の推定位置を取得できると期待しています (GPS は正確な位置を特定するための衛星信号を見つけられないため)。

最新の Google マップ Android アプリは、推定位置で屋内で正常に動作することがわかりました。

質問:

新しい位置情報 API を使用して屋内で位置情報を更新するには、他に何に注意する必要がありますか (正確な位置情報は必要ありません。精度が低くても問題ありません)。

Android 4.2.2 バージョンの API を使用して Android アプリを実装しています。HTC One X (OS v 4.1.1) でテストしています

以下は、新しい API を使用して位置情報の更新を取得するために適用した Android コードです。

ステップ1:

mLocationClient = new LocationClient(this, this, this);

ステップ2:

// Create the LocationRequest object
mLocationRequest = LocationRequest.create();
// Use high accuracy
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
// Set the update interval to 5 seconds
mLocationRequest.setInterval(UPDATE_INTERVAL);
// Set the fastest update interval to 1 second
mLocationRequest.setFastestInterval(FASTEST_INTERVAL);

Step3:onStart()メソッド内 - 以下の行が追加されます:

// Connect the client.
mLocationClient.connect();

Step4:onConnected()メソッド内 - 以下の行が追加されます:

mLocationClient.requestLocationUpdates(mLocationRequest, this);

Step5:onLocationChanged()メソッド内 - 位置情報の更新をリッスンします。内部をテストする場合、このメソッドは呼び出されません。このメソッドは、GPS 信号が見つかった場合にのみ呼び出されます。

double lat = location.getLatitude();
double lng = location.getLongitude();

最後に、Android マニフェストに以下のアクセス許可を追加しました。

 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
4

4 に答える 4

3

あなたのスニペットに基づいて、コードは屋内の場所を受け取るのに問題ないように見えます。

アプリが場所を要求しているときに屋内にいるときにダンプを実行してみてください (場所を受け取ることを期待していますが、受け取っていません): adb shell dumpsys activity service com.google.android.location.internal.GoogleLocationManagerService

ここに出力を投稿できますか?

[設定] -> [WiFi] が有効になっていること、[設定] -> [位置情報アクセス] -> [Wi-Fi & モバイル ネットワークの場所] が有効になっていることを再確認できますか (どちらも屋内の場所に必要です)。

あなたの携帯電話にはSIMカードがありますか?これにより、Wi-Fi が利用できない場合に携帯電話基地局から取得した場所が許可されます。

最後に、Google マップは同じ建物内の屋内の場所を提供するとおっしゃいました。精度円のおおよそのサイズ (つまり、20 メートルに近いか 100 メートルに近いか)?

于 2013-05-28T23:26:41.837 に答える
0

HTC One X (4.1.1) で長いテストとデバッグを行った後、他の電話モデルで同じテスト ケースを試すことにしました。幸いなことに、友人の Samsung S3 (4.1.1) でテストしたとき、私のアプリは屋内でも動作しました。同じ時間と場所で、HTC One X でテストしたところ、屋内の場所が取得できませんでした。両方の電話が同じ設定 (WiFi/GPS/モバイル ネットワークがすべて有効) に設定されています。

これが特定のデバイスの問題であることを確認するために、アプリを使用して建物内のさまざまなコーナーで多くのテストを実行しましたが、すべての屋内の場所で HTC に同じ問題が見られます (ただし、同じ場所で S3 は屋内の場所を取得します)。

于 2013-05-29T20:54:35.553 に答える