package com.example.android.recipe073; import android.app.Activity; import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.widget.TextView; public class Recipe073 extends Activity implements LocationListener { private TextView mTextView; private LocationManager mManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextView = (TextView)findViewById(R.id.text); // LocationManagerのインスタンスを取得 mManager =(LocationManager)getSystemService(LOCATION_SERVICE); } @Override protected void onResume() { super.onResume(); // 現在の状況に最適なプロバイダを取得します。 // Criteriaで細かい条件が指定できますが今回はデフォルトで String provider; provider = mManager.getBestProvider(new Criteria(), true); if (provider == null) { // 位置情報が取得できるプロバイダがありません。 // Wifiにも3Gにも繋がっていないなど。 } mManager.requestLocationUpdates(provider, 0, 0, this); // 最後に取得した位置情報を取得 Location location = mManager.getLastKnownLocation(provider); if (location != null) onLocationChanged(location); } @Override public void onPause() { super.onPause(); // リスナーを解除 mManager.removeUpdates(this); } // 位置情報が変化したら呼び出される。 public void onLocationChanged(Location location) { double latitude = location.getLatitude(); double longitude = location.getLongitude(); mTextView.setText("緯度=" + latitude + ", 経度=" + longitude); } // プロバイダが無効になったら呼び出される。 public void onProviderDisabled(String provider) { } // プロバイダが有効になったら呼び出される。 public void onProviderEnabled(String provider) { } // プロバイダの状態が変化したら呼び出される。 public void onStatusChanged(String provider, int status, Bundle extras) { } }