Experiments Never Fail

TimeoutableLocationListener というのを作ってみた

Android で GPS の位置を受信する場合、LocationListener というインターフェースを渡して位置が受信できるのをジッと待つわけです。Android での GPS の使い方はググるといっぱいでてきますもんね。

で、LocationManager.onStatusChanged というメソッドがあって、例えば屋内とかで、受信できずにあきらめた場合、こいつが呼び出されるのかと思いきや、期待したようなタイミングで受信してくれません。

結局自力でタイムアウト処理を書いて GPS を止めるハメになるのですが、いつも同じ処理を書くのが面倒なので、共通っぽいクラスにしてみました。

gist 777790

LocationListener の代わりにこの TimeoutableLocationListener をセットします。いつもと違うのは以下の2箇所です。

interface じゃなくなっちゃったので、ちょっと不自由ですが、まあ使えるのではないかと思います。

published at tags: Android Java Gps