5

ジョギング中にGPSの位置を追跡するアプリを作成しました。残念ながら、アプリはGPS信号を取得するのに時間がかかります。グーグルマップのような他のアプリを開くと、すぐにその位置を取得します。

私の問題は、アプリが信号をできるだけ速く取得できるように、gps-providerを実装する方法です。

1つのアイデアは、アプリでサービスを開始して、プロバイダーが予備作業を行うようにすることでした。ただし、追跡アクティビティはメインアクティビティではありません。サービスを開始していないアクティビティでサービスをバインドするにはどうすればよいですか?これは良い考えですか?

読んでくれてありがとう-そして私の英語が理解できることを願っています、

マティーニ

4

2 に答える 2

9

コメントで述べたように、GPSの起動は瞬時のプロセスではありません。受信機は基本的に、その位置を計算するために、星座内の各GPS衛星の位置を知る必要があります。エフェメリスデータは、受信した衛星の位置を表し、GPSがオンになっているときに衛星からダウンロードされます(ダウンロードの一部であり、衛星の軌道を表すアルマナックデータについてはほとんど忘れていました) 。複数の衛星からダウンロードして最後の既知の位置を使用するなどの方法で、この初期プロセスを高速化できますが、「インスタント」にすることはできません。

特に携帯電話で、ロケーションプロセスをスピードアップするために使用できる他の戦略があります。GPSの取得プロセス中に、最後に認識された位置に加えて、セルタワー+タイミング測位(ECID)やWi-Fi測位などをGPSの代わりに使用できます。

このリンクでは、Androidで携帯電話を見つける方法に関するいくつかのアイデアについて説明していますが、不足しているのは次のとおりです。

  • 最後の既知の位置を確認します(古すぎる場合は破棄します)
  • E-CIDの位置を確認します(これは非常に高速ですが、非常に粗い場所です)
  • Wi-Fiの位置を確認します(これ非常に正確ですが、WiFiをオンにする必要があり、場合によっては大量のエラーが発生する可能性があります)
  • 最終的にGPS位置を取得します
于 2012-08-18T11:07:59.173 に答える
2

使用できる最後の既知の場所があるかどうかを最初に確認していますか?ほとんどのアプリは、最初にそれをチェックしてから、場所を検索します。

于 2012-08-18T09:45:09.320 に答える