<uses-permissionこれで、GPSの情報にアクセス出来るようになります。続いて、プログラムでGPSを利用するための処理を作成します。
android:name="android.permission.ACCESS_FINE_LOCATION" />
manager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);コンストラクタでは、まずLocationManagerを取得します。これは「getSystemService」というメソッドを利用します。これは引数にサービスの種類を指定すると、それを利用するためのマネージャクラスを返すものです。これで「LOCATION_SERVICE」を指定することで、LocationManagerが得られます。
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,this);取得したLocationManagerの「requestLocationUpdates」を呼び出します。これは、位置情報が更新されるなどのイベントが発生した際のリクエストを処理するオブジェクトを設定するものです。
public void onLocationChanged(Location loc)これらは、それぞれ「位置情報の更新時」「ディスエーブル時」「イネーブル時」「ステータス更新時」に呼び出されます。
public void onProviderDisabled(String arg0)
public void onProviderEnabled(String arg0)
public void onStatusChanged(String arg0, int arg1, Bundle arg2)
double lat = loc.getLatitude();位置情報は、Locationの「getLatitude」「getLongitude」で得られます。それぞれdoubleの値として緯度・経度の値が取得されます。
double lgt = loc.getLongitude();
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※androidManifest.xmlに追記 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> ※SampleApp.javaのソースコード package jp.tuyano; import android.app.Activity; import android.content.Context; import android.location.*; import android.os.Bundle; import android.widget.TextView; public class SampleApp extends Activity implements LocationListener { private LocationManager manager; private TextView text1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); text1 = (TextView)this.findViewById(R.id.text); manager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); manager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,this); } @Override public void onLocationChanged(Location loc) { double lat = loc.getLatitude(); double lgt = loc.getLongitude(); text1.setText("Lat: " + lat + "\nLgt: " + lgt); } @Override public void onProviderDisabled(String arg0) {} @Override public void onProviderEnabled(String arg0) {} @Override public void onStatusChanged(String arg0, int arg1, Bundle arg2) {} }
<< 前へ |