2012-01-04 11 views
1

私は、ネットワークタワーとWi-Fiネットワークに関連付けられた正しい場所(緯度/経度)を取得するために、ネットワークの場所のポーリングにインターネット接続が必要であることを理解したと思います。正しい?wifi/3gがオフのときの位置ポーリングの問題

これは私の問題です: 私は場所をポーリングするアプリケーションを持っていて、wifi/3gがオンのときに正常に動作します。 しかし、wifi/3gがオフのときは、最後の場所を私のコードで修正するように要求していませんが、最後の既知の場所(何もなく)を提供し続けます。何らかの種類のキャッシングがありますか?はいの場合、それを無視する方法はありますか?

おかげ

+0

私はネットワークとGPSプロバイダからロケーションを取得するために必要なインターネットがないと思います.Wifi –

+0

からのロケーションの場合に必要となる可能性があります[this](http://stackoverflow.com/a/3145655/340068)will willあなたに助けてください –

+0

ありがとうAlok。これは私が実際に私の場所を取得するために使用しているコードです(私は最後の既知の部分を削除しましたが)オフライン(インターネット接続なし)の場合は、最後の場所を返すようにします – znat

答えて

0

私はNETWORK_PROVIDERの位置更新を要求する前に、すべての接続されたネットワークのためのチェックを追加することで、この問題を解決しました。

public boolean isNetworkAvailable() { 
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo networkInfo = cm.getActiveNetworkInfo(); 
     if (networkInfo != null && networkInfo.isConnected()) { 
      return true; 
     } 
     return false; 
} 

これは簡単なリクエストの解決方法です。ネットワークのオン/オフを決定し、ロケーション更新を要求/削除する場合は、ConnectivityManagerの機能を使用する必要があります。ネットワーク接続が変わると、ブロードキャストインテントを送信します。