私のアプリケーションでは、ユーザーの現在の場所を特定したいと思います。ただし、この点についていくつか質問があります。
ロケーションプロバイダーはさまざまですが、どれが最も正確ですか。GPSプロバイダまたはネットワークプロバイダ?
それらの利用可能なプロバイダーはどの程度異なりますか?それらはどのように機能しますか?
アプリケーションにGPS機能を実装するためのコードスニペットまたはチュートリアルを教えていただけませんか。
私のアプリケーションでは、ユーザーの現在の場所を特定したいと思います。ただし、この点についていくつか質問があります。
ロケーションプロバイダーはさまざまですが、どれが最も正確ですか。GPSプロバイダまたはネットワークプロバイダ?
それらの利用可能なプロバイダーはどの程度異なりますか?それらはどのように機能しますか?
アプリケーションにGPS機能を実装するためのコードスニペットまたはチュートリアルを教えていただけませんか。
回答:
Androidには3つの位置情報プロバイダーがあります。
彼らです:
gps –>(GPS、AGPS): GPSロケーションプロバイダーの名前。このプロバイダーは、衛星を使用して位置を特定します。条件によっては、このプロバイダーが位置情報フィックスを返すまでに時間がかかる場合があります。android.permission.ACCESS_FINE_LOCATION権限が必要です。
ネットワーク–>(AGPS、CellID、WiFi MACID):ネットワークロケーションプロバイダーの名前。このプロバイダーは、セルタワーとWiFiアクセスポイントの可用性に基づいて場所を決定します。結果はネットワークルックアップによって取得されます。android.permission.ACCESS_COARSE_LOCATIONまたはandroid.permission.ACCESS_FINE_LOCATIONのいずれかの権限が必要です。
パッシブ–>(CellID、WiFi MACID):ロケーションフィックスを実際に開始せずにロケーションを受信するための特別なロケーションプロバイダー。このプロバイダーを使用すると、他のアプリケーションまたはサービスが実際に位置を要求することなく要求したときに、位置の更新を受動的に受信できます。このプロバイダーは、他のプロバイダーによって生成された場所を返します。android.permission.ACCESS_FINE_LOCATION権限が必要ですが、GPSが有効になっていない場合、このプロバイダーは大まかな修正のみを返す可能性があります。これは、Androidがこれらの位置情報プロバイダーと呼んでいるものですが、これを機能させるための基盤となるテクノロジーは、特定のハードウェアセットと電話会社が提供する機能(ネットワークサービス)にマッピングされています。
最善の方法は、最初に「ネットワーク」または「パッシブ」プロバイダーを使用し、次に「gps」にフォールバックし、タスクに応じてプロバイダーを切り替えることです。これはすべてのケースをカバーし、最も一般的な分母サービス(最悪の場合)と優れたサービス(最良の場合)を提供します。
記事参照:Androidロケーションプロバイダー-GPS、ネットワーク、パッシブNazmul Idris
コードリファレンス:https : //stackoverflow.com/a/3145655/28557
- - - - - - - - - - - -更新 - - - - - - - - - - - -
Androidが融合した位置情報プロバイダーになりました
融合型ロケーションプロバイダーは、基盤となるロケーションテクノロジーをインテリジェントに管理し、ニーズに応じて最適なロケーションを提供します。アプリがユーザーの現在位置を取得する方法を簡素化し、精度を高め、電力使用量を削減します
融合位置プロバイダーは、位置を取得する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開発サイトを見ることです。ユーザーの場所を特定するためのセクションがあり、必要なすべてのコードサンプルが含まれています。
http://developer.android.com/guide/topics/location/obtaining-user-location.html
ここで言及されているいくつかの素晴らしい答えがあります。あなたが取ることができる別のアプローチは、Androidアプリケーションと統合できるAtooma、tranql、Neuraなどのオンラインで利用可能ないくつかの無料のSDKを使用することです(統合に20分もかかりません)。ユーザーの正確な場所を提供するだけでなく、ユーザーのアクティビティについての良い洞察も得られます。また、それらのいくつかはあなたのバッテリーの1%未満を消費します