サイト移転のお知らせ:http://techbooster.org/に移転しました

位置測位機能の状態を取得する

5月 1, 2011   //   by kseto   //   デバイス  //  No Comments

「PhoneStateListenerで回線の接続状況の変化を取得する」「NetworkInfoを使って、通信接続が可能状態か知る」では3G/Wifiのネットワーク通信の接続状態を確認する方法を紹介しました。
同じようにGPSなどの位置測位機能の設定状態を確認したい場合があります。
※AndroidではGPSやWiFiを利用して位置情報を取得することができます。

これら位置測位機能の状態はandroid.provider.Settings.Secureクラスを利用することで取得が可能です。

今回は位置測位機能の状態を取得する方法について説明したいと思います。

getStringメソッドとLOCATION_PROVIDERS_ALLOWEDパラメータ

GPSの状態の取得にはandroid.provider.Settings.Secure#getStringメソッドを使用します。

String getString (ContentResolver resolver, String name)

引数にはContentResolverと取得したいパラメータ名を指定します。
パラメータ名にはLOCATION_PROVIDERS_ALLOWEDを指定することで位置測位機能の設定情報を取得することができます。

具体的には以下のように使用します。

String gpsStatus = android.provider.Settings.Secure
		.getString(getContentResolver(), Secure.LOCATION_PROVIDERS_ALLOWED);

上記コードを実行すると以下のような結果が得られます。

network,gps

networkはWiFi経由での位置測位、gpsはGPS経由での位置測位が有効になっていることを示しています。
このように有効になっている位置測位機能がカンマ区切りで表現されます。

それでは続きからサンプルコードを紹介します。

サンプルコード

サンプルコードではGPS機能の状態に応じてToastを表示しています。

public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.main);

	Button btn_checkGps = (Button) findViewById(R.id.btn_checkGps);
	btn_checkGps.setOnClickListener(new OnClickListener() {
		public void onClick(View v) {
			// GPSの状態を取得
			String gpsStatus = android.provider.Settings.Secure.getString(getContentResolver(), Secure.LOCATION_PROVIDERS_ALLOWED);

			// GPSが無効だった場合
			if (gpsStatus.indexOf("gps", 0) < 0) {
				// Toastを表示
				Toast.makeText(getApplicationContext(), "GPSは無効です",
						Toast.LENGTH_LONG).show();

			// GPSが有効だった場合
			} else {
				// Toastを表示
				Toast.makeText(getApplicationContext(), "GPSは有効です",
						Toast.LENGTH_LONG).show();
			}
		}
	});
}

まず、9行目のgetStringメソッドで位置測位機能の設定情報を取得します。
そして取得した結果にgpsという文字列が含まれているか、つまりGPS機能が有効に
なっているかを12行目で確認し、結果に応じたToastを表示するようにしています。

GPSが有効になっているとき

GPSが無効になっているとき

関連する記事:

Sponsored Link

Comments are closed.

技術書新刊 発売中

アンドロイドアカデミアには、CIやテスト、互換検証など実務に生きるノウハウをあつめています

技術書新刊 発売中

Android Next!はAndroid 7.0に対応したはじめての技術書です!


The Web Explorer 2はCSSの中央寄せやWebAudioなど未来を読み解く一冊です


Revised TypeScript in DefinitelylandはTypeScript 2.0(β)に対応した解説書です。インストールから型定義まで幅広くサポートしています


技術書をかこう!はエンジニアらしい執筆環境を構築、HowTo本です