<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) {}
}
| << 前へ |