21

新しい Google Play ジオフェンシング サービス API をテストしています。

Android デベロッパー サイトからサンプル コードをダウンロードしました。次に、サンプル コードを Android デバイス (Galaxy Note 2) で実行しました。オフィスの地理的位置と半径を 10m に設定しましたが、オフィスまで歩いても何も起こりませんでした。

サンプル コードを実行しているときに気づいたことの 1 つは、既にジオフェンス範囲内にいて、ジオフェンスを に追加してLocationClientも何も起こらないことです。

私はすでにLocationClientクラスのドキュメントを読んでおり、次の段落を見つけました。

ネットワーク ロケーション プロバイダーがユーザーによって無効にされた場合、ジオフェンス サービスは更新を停止し、登録されているすべてのジオフェンスが削除され、指定された保留中のインテントによってインテントが生成されます。この場合、hasError(Intent)は true をgetErrorCode(Intent)返し、 を返しますGEOFENCE_NOT_AVAILABLE。」

そこで、WiFi をオンにして、オフィス (ジオフェンス内) に向かって歩いていたところ、「ジオフェンスが入力されました」という通知を受け取りました。

次の質問があります。

  1. ジオフェンシングは、WiFi が有効になっている場合にのみ機能しますか?

  2. 3G ネットワークが提供する位置情報が機能しないのはなぜですか?

  3. これはサンプル コードのバグですか?

  4. それともこれは私の間違いですか?

4

5 に答える 5

5

セルラー ネットワークのみを使用する場合、位置精度は Wi-Fi や GPS の精度よりも低くなります (Google マップを開くと、青い円は現在位置の推定値です。3GP のみを使用する場合、円は半径を持つことができます。数百メートルもある)。

最近、私はジオフェンスを使用してアプリに取り組んでおり、次のことを理解しました: 私見ジオフェンスエントリは、この「位置推定円」がすべてジオフェンス半径内にある場合、つまり、ジオフェンスに入った可能性が 100% の場合にのみトリガーされます。 . したがって、設定した半径の大きさによって異なります。10 メートルだけを設定すると、おそらく GPS でのみ機能し、3GP では機能しません。3GP の場合、半径を 1000 メートルに設定する必要があります。

于 2013-06-02T14:19:09.733 に答える
1

ここで結果を共有したいと思いました。私も、Google Play Services Location API と Geofence API を実装するラボ アプリを開発しました。私の結果は、位置決定コードがその誤りを認めることが病的に不可能であることを示しています。:)

ボタンが押されると、アプリはロケーション API によって返された現在のロケーション (「curLoc」) に半径 30 メートルのジオフェンスを作成します。画面には、curLoc.distanceTo(fenceLoc) を呼び出してほぼ毎秒更新することで、ジオフェンス センター ("distToCenter") までの距離を表示しています。

アプリを起動し、精度が安定するまで待ってから (通常は 10.0 メートル)、ボタンを押してフェンスを作成します。「enter」イベントをすぐに取得します。イベントをクリアして散歩に出かけると、どうやら時空異常に突入。ブロックを下って角を曲がったところ、distToCenter の値は約 4 メートルしか増加していません。家から約 300 メートル (歩数を数えて判断) になるまでさらに進み、dstToCenter が徐々に増加します。ジオフェンス出口イベントは、dstToCenter が 30 メートルを超えてから約 20 秒後に最終的に発生します。

距離が安定するのを待ちます。約 150 メートルです。振り返って家に帰ると、同じ極端な位置ずれが発生します。ワームホールの自己がまだ約 90 メートル離れている間、私は自分の机に座っています。約 40 秒後にドッペルゲンガーがフェンス内に入り、さらに約 20 秒後にエンター イベントが発生します。

この時点で、私はまだ正面の歩道 (7.4 メートル先) のどこかにいて、玄関に向かって少しずつ進んでいます。

注: WiFi への接続が失われた後、GPS ステータス バーのアイコンが点灯して数秒間点滅するのを見ましたが、ソースはずっと「融合」していました。さらに、精度は 10.0 メートルから揺らぐことはありませんでした。

うそつき!

:)

于 2014-08-01T05:02:26.447 に答える
1

Wifi は、現在地の追跡に使用されます。Wi-Fi 信号とセル信号を使用して位置を三角測量することは、GPS を常に実行するよりも電力効率の高いソリューションです。さらに、マルチパスの多いエリアや屋内など、GPS が機能しない状況でも機能します。

于 2013-05-28T19:44:46.087 に答える
0

サンプル ジオフェンス アプリケーションをテストしましたが、WiFi がオフの場合、Android 4.3 未満のバージョンではジオフェンス イベントが検出されません。

Android 4.3 以降は、WiFi がオフの場合でも動作します。

于 2014-03-18T23:07:42.330 に答える