Androidのロケーションプロバイダー?
-
27-09-2019 - |
質問
私のアプリケーションには、ユーザーの現在の場所が必要です。このためにコードを実装し、現在の場所を取得できます。コードは、最初に最高のプロバイダーを取得しようとし、次に位置情報を取得しようとします。問題は、gps_providerが無効になっている場合、現在の場所がnetwork_providerから返されることです。 network_providerとgps_providerの両方が有効な場合、最適なプロバイダーはgps_providerになり、現在の場所を取得するには時間がかかりすぎます。
したがって、GPS_Providerが有効かどうかは関係ないように、ロケーションプロバイダーをNetwork_Providerとしてのみ設定しても大丈夫ですか。
正しいアプローチが何であるか教えてください。
よろしく
スニル
解決
アプリケーションによっては、ネットワークの場所のみを使用できる場合があります。これは、多くのロケーションベースのサービスに十分に細粒化されています。さらに、GPSラジオでユーザーのバッテリーを吸うことを心配する必要はありません。
しかし、可能な限り正確な場所を本当に望んでいるなら、両方のプロバイダーを聞いてみませんか?使用できます getLastKnownLocation()
初期位置の方法。次に、を使用できます NETWORK_PROVIDER
位置。その後、あなたがからの修正を取得するとすぐに GPS_PROVIDER
, 、ネットワークリスナーを無視または削除できます。
他のヒント
GPSは、ネットワークプロバイダーよりも優れた精度を提供します。
ネットワークプロバイダーは、セルタワーとWiFiの三角測量を使用して行われます。
したがって、すぐに必要な場合は、「最後の既知の場所」から始めて、GPSから修正ができたらネットワークに切り替えて、使用を開始します。
よろしく、ヴィナイ