[解決済み] Androidの位置情報プロバイダー - GPSかネットワークプロバイダーか?
質問
私のアプリケーションでは、ユーザーの現在地を特定したいと思います。しかし、この点に関していくつかの質問があります。
-
位置情報プロバイダーにはさまざまなものがありますが、どれが一番正確なのでしょうか?その GPSプロバイダ または ネットワーク プロバイダー ?
-
利用可能なプロバイダーはどこまで違うのでしょうか?どのように機能するのでしょうか?
-
私のアプリケーションにGPS機能を実装するために、どのように始めるかについて、いくつかのコードスニペットまたはチュートリアルを提供していただけませんか?
どのように解決するのですか?
<ブロッククオートAndroidには、3つの位置情報プロバイダがあります。
それらは
gps ->(GPS、AGPS)です。 GPSロケーションプロバイダの名前。この このプロバイダは衛星を使用して位置を決定します。条件によっては このプロバイダは衛星を利用して位置情報を取得しますが、条件によっては位置情報の取得に時間がかかる場合があります。 android.permission.ACCESS_FINE_LOCATION のパーミッションが必要です。
ネットワーク -> (AGPS, CellID, WiFi MACID)。 ネットワーク名 ロケーションプロバイダです。このプロバイダは、セルタワーとWiFiアクセスポイントの利用可能性に基づいて セルタワーやWiFiのアクセスポイントに基づいて位置を決定します。結果は ネットワーク・ルックアップによって取得される。以下のいずれかが必要です。 android.permission.ACCESS_COARSE_LOCATION のいずれかのパーミッションが必要です。 android.permission.ACCESS_FINE_LOCATION のいずれかが必要です。
passive ->(CellID、WiFi MACID)です。 位置情報を受信するための特別なプロバイダーです。 実際に位置の修正を開始することなく、位置を受信するための特別な位置プロバイダです。この このプロバイダは、他のアプリケーションやサービスが位置情報の更新を要求したときに、実際に要求することなく受動的に位置情報を受信するために使用することができます。 このプロバイダは、他のアプリケーションやサービスが位置情報の更新を要求したときに、実際に位置情報を要求することなく を受信するために使用できる。このプロバイダは、他のプロバイダが生成した位置を返す。 他のプロバイダが生成した位置を返す。パーミッションが必要です。 GPSが有効でない場合、このプロバイダは粗い位置情報しか返さないかもしれません。 しかし、GPSが有効でない場合、このプロバイダは粗い固定値しか返さないかもしれません。これは Androidでは、このような位置情報プロバイダをこう呼んでいます。 このようなものを動作させるための基礎となる技術は、特定のハードウェアと通信会社が提供する機能(ネットワーク)にマッピングされます。 ハードウェアと通信事業者が提供する機能 (ネットワーク サービス) にマッピングされます。
最適な方法は、まず「ネットワーク」または「パッシブ」プロバイダーを使用することです。
そして、「gps」にフォールバックし、タスクに応じて、プロバイダーを切り替えることです。
プロバイダを切り替えることです。これはすべてのケースをカバーし、(最悪の場合)最小公倍数のサービスを提供します。
これはあらゆるケースをカバーし、(最悪の場合は)最小公倍数のサービス、(最良の場合は)最高のサービスを提供します。
を提供します。)
記事参照: Androidの位置情報プロバイダー - gps、ネットワーク、パッシブ By Nazmul Idris
コードの参照: https://stackoverflow.com/a/3145655/28557
-----------------------Update-----------------------
現在、Androidは 融合型ロケーションプロバイダ
Fused Location Provider は、基盤となる位置情報技術をインテリジェントに管理し、ニーズに合わせて最適な位置を提供します。アプリがユーザーの現在地を取得する方法を簡素化し、精度を向上させ、消費電力を抑えます。
Fused Location Provider は、位置情報を取得するための 3 つの方法を提供します。
- 最後の位置情報です。 現在地を一度知りたいときに使用します。
- Listenerを使って位置情報を取得します。 アプリケーションが画面上/フロントエンドにあり、継続的な位置情報を必要とするときに使用します。
- Pending Intentを使用して位置情報を要求します。 バックグラウンドのアプリケーションで、継続的に位置情報を要求する場合に使用します。
リファレンス。
公式サイト 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
--------------------------------------------------------
関連
-
ArrayAdapter は、リソース ID が TextView であることが必要です。
-
アンドロイドスタジオでJunitのエラー問題を解決する
-
Google PlayデバイスはPlay保護機構の認証を受けていません。
-
ConstraintLayoutのいくつかのプロパティの概要(RelativeLayoutの強化版、LinearLayoutの比例プロパティを含む、階層ツールの削減)。
-
アンドロイドシェイプ、グラデーション、角丸、ボーダーラインの設定
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み】Androidでユーザーの位置情報を取得する良い方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
プログラム "git.exe "を実行できない場合の正しい解決方法です。CreateProcessエラー=2
-
デフォルトのアクティビティが見つからない場合の対処法
-
Android: インポートモジュールエラー Android リソースのリンクに失敗しました
-
GoogleMapと連携し、位置情報の取得が可能
-
view.getRootView()の本当の意味とテストについて
-
AndroidでListViewを使ってカスタムテーブルを描画する
-
Android Bluetooth 開発の基本プロセス
-
アンドロイドシェイプ、グラデーション、角丸、ボーダーラインの設定
-
android.content.ActivityNotFoundException を解決します。Intent問題を処理するActivityが見つからない
-
[解決済み] Androidで緯度・経度値を持つ位置情報オブジェクトを作成する