私のアプリケーションでは、ユーザーの現在の場所を特定したいと思います。ただし、この点に関していくつか質問があります。
さまざまなロケーションプロバイダーがありますが、どれが最も正確ですか? GPSプロバイダー または ネットワークプロバイダー ?
利用可能なプロバイダーはどこまで異なりますか?それらはどのように機能しますか?
アプリケーションにGPS機能を実装するためのコードスニペットまたはチュートリアルを教えてください。
Androidには3つのロケーションプロバイダーがあります。
彼らです:
gps –>(GPS、AGPS):GPSロケーションプロバイダーの名前。このプロバイダーは、衛星を使用して場所を特定します。条件によっては、このプロバイダーが位置修正を返すまでに時間がかかる場合があります。許可Android.permission.ACCESS_FINE_LOCATIONが必要です。
network –>(AGPS、CellID、WiFi MACID):ネットワークロケーションプロバイダーの名前。このプロバイダーは、セルタワーとWiFiアクセスポイントの可用性に基づいて場所を決定します。結果はネットワーク検索によって取得されます。権限Android.permission.ACCESS_COARSE_LOCATIONまたはAndroid.permission.ACCESS_FINE_LOCATIONのいずれかが必要です。
passive –>(CellID、WiFi MACID):実際にロケーションフィックスを開始せずにロケーションを受信するための特別なロケーションプロバイダー。このプロバイダーを使用して、他のアプリケーションまたはサービスが実際に場所を要求せずにそれらを要求したときに、位置の更新を受動的に受信することができます。このプロバイダーは、他のプロバイダーによって生成された場所を返します。 Android.permission.ACCESS_FINE_LOCATIONの許可が必要ですが、GPSが有効になっていない場合、このプロバイダーは大まかな修正のみを返す場合があります。これがAndroidと呼ばれるこれらのロケーションプロバイダーですが、このようなものを機能させるための基盤となるテクノロジーは、ハードウェアおよび電話会社が提供する特定の機能セット(ネットワークサービス)にマッピングされます。
最良の方法は、最初に「ネットワーク」または「パッシブ」プロバイダーを使用し、次に「gps」にフォールバックし、タスクに応じてプロバイダーを切り替えることです。これはすべてのケースをカバーし、最低公約数サービス(最悪の場合)と優れたサービス(最高の場合)を提供します。
記事リファレンス: Androidロケーションプロバイダー-GPS、ネットワーク、パッシブBy Nazmul Idris
コードリファレンス: https://stackoverflow.com/a/3145655/28557
-----------------------更新----------------- ------
Android haveFused location provider
Fused Location Providerは、基盤となるロケーションテクノロジーをインテリジェントに管理し、ニーズに応じて最適なロケーションを提供します。アプリがユーザーの現在地を取得する方法を簡素化し、精度を向上させ、電力使用量を削減します
融合ロケーションプロバイダーは、ロケーションを取得する3つの方法を提供します
参考文献:
公式サイト: http://developer.Android.com/google/play-services/location.html
融合ロケーションプロバイダーの例:GIT: https://github.com/kpbird/fused-location-provider-example
http://blog.lemberg.co.uk/fused-location-provider
----------------------------------------- ---------------
通常、GPSはネットワークよりも正確ですが、GPSが利用できない場合があるため、2つを切り替える必要がある場合があります。
良い出発点は、Android devサイトを調べることです。ユーザーの場所を特定するためのセクションがあり、必要なすべてのコードサンプルがあります。
http://developer.Android.com/guide/topics/location/obtaining-user-location.html
ここにいくつかの素晴らしい答えがあります。別の方法として、Atooma、tranql、Neuraなどのオンラインで入手可能な無料のSDKを使用して、Androidアプリケーションと統合できます(統合に20分もかかりません)。ユーザーの正確な位置情報を提供するだけでなく、ユーザーのアクティビティに関する優れた洞察も得られます。また、それらの一部はバッテリーの1%未満しか消費しません