位置情報のプロバイダ選定

androidのGPSの機能を組み込む時に、多くのサイトで利用されているgetBestProviderには欠点があり、

providerの設定方法を考える必要があります。

Android の位置情報を確実に取る方法

に記述されていたのですが、

どうやら、Desireでバグが発生してしまうようです。

 

上記の方法でgetAllProvidersを利用するのもよいかと思ったのですが、精度の高い測定と精度の低い測定の場合があり、

現在作成をしていたものには、使いにくかった為に利用しませんでした。

 

一度Desireユーザーを見捨てようと考えたのですが、getBestProvider自体で取得してくるproviderが、

やや精度の低いnetwork優先だったりしたので使いませんでした。

 

providerをgps専用のものにしていた場合には、gpsがoffのユーザーが不便を感じるので、利用できません。(実際、電気の消費量を考えて通常オフのユーザーがほとんどかと思います。。)

 

なので、gpsがonの時には、gpsを利用して、gpsがoffの時はnetworkを利用する形で位置の取得を行いたいと思います。

locationmanager = (LocationManager)getSystemService(LOCATION_SERVICE);
String provider = "";
if(locationmanager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
 //GPSが利用可能
 provider = "gps";
}else if(locationmanager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){
 //ネットワークが利用可能
 provider = "network";
}else{
 //位置情報の利用不可能
}

で、作成ができました。シンプルで簡単な式ですが、案外とやっている方がいなかったので不安ではありますが、galaxyではこれで簡単に取得できました。

 

前後の記事

前の記事:

次の記事:

関連の記事

コメントの投稿

  • サイト内検索

新作アプリの紹介

関連サイトの紹介

アンドロイドアプリ開発TIPS
きぐるみカメラ
ふらいぱん
アンドロイドのデザイン集
Page top↑