2016-05-12 2 views
1

新しいGoogleサービスAPIを使用して位置情報を取得しようとしています。私は次のことを試しています:AndroidでFusedLocationAPIを使用する場所

PendingResult<Status> pendingResult = LocationServices.FusedLocationApi.requestLocationUpdates 
       (mGoogleApiClient, mLocationRequest, this); 

次構成ガイドで:

mLocationRequest = new LocationRequest(); 
     mLocationRequest.setInterval(INTERVAL); 
     mLocationRequest.setFastestInterval(FASTEST_INTERVAL); 
     mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 

INTERVALかつ最速の間隔がある場合は:

private static final long INTERVAL = 1000 * 10; 
private static final long FASTEST_INTERVAL = 1000 * 5; 

結果が適切に予定されています。今問題は、FusedLocationAPIが場所を取得する最良の方法ですか?

また、問題のすべてのタイプで、この設定作業は以下となります。

  1. ユーザーは場所に彼の携帯電話上の最初の時間をチェックしている - 私のアプリのインストールをして場所をいつでも持っていませんか?

  2. ユーザーが電話を使用していない場合は、 (これはNexus 5でも問題ありません)

  3. 飛行機モードがONでWIFIがオンの場合は、 (これはNexus 5でも問題ありません)

  4. FusedLocationAPIに問題はありますか?任意の欠点?

答えて

0

ユーザは、自分の携帯電話に場所を初めてチェックしているとき - 私のアプリをインストールし、場所をいつでも持っていませんか?

ユーザーがプレイストアまたはGoogleサービスを開くと、ロケーションサービスが開始されます。実行中のサービス> Google Playサービス>ロケーションサービスをチェックインすることができます。ネットワークやGPSに基づいて場所を取得します。あなたは最後の場所について心配する必要はありません。

ユーザーが電話を使用していない場合は、 (これはNexus 5でも問題ありません)

飛行機モードがONでWIFIがオンの場合は、デバイスは、それがnull値を与える、インターネットに接続されていなかった場合

(これは Nexus 5の上で正常に動作します)が、それが適切な帯域幅で一度でも接続されている場合には、位置データを持っています。

FusedLocationAPIに問題はありますか?任意の欠点?

Google APIそれは私たちの手にないように変更または削除することができます。プラスそれはまったくデバイスのプレイストアとバージョンに依存します。デバイスに古いバージョンのプレイサービスがある場合、パッケージバージョンでは奇妙な出力も表示されます。

疑問や既にdocで言及されているその他のことをクリアして、あなたもそれを確認できるようにします。

+0

答えをありがとう。その後、場所を取得する最善の方法は何ですか? –

+0

@SanjanaNair今のところ、apiは最高のことは言えませんが、アンドロイドロケーションマネージャのコア機能(あまりにも多くの定型コードが必要です)をいくつかの共有設定とコールバックで処理しています。独自の完全プルーフ実装を作成することができれば最適です。 – androidnoobdev

関連する問題