구글맵을 띄울 엑티비티는 Activity를 상속 받는것이 아니라 MapActivity를 상속 받습니다.


그리고 인터페이스를 하나 구현해 줍니다.


public class 클래스명 extends MapActivity implements LocationListener {

...


Location을 구현하기 위해서는 4개의 메소드가 필요하다.


 

public void onLocationChanged(Location location) {}

// 위치값이 변경될 시 , 지역변수는 위치 값을 말한다.

public void onProviderDisabled(String provider) {}

// 위치 제공이 안될 시

public void onProviderEnabled(String provider) {}

// 위치 제공이 가능한 경우

public void onStatusChanged(String provider, int status, Bundle extras) {}

// 상태가 변경되었을 시 ( ex. gps->3g )



이 내용물들을 잘 골라가며 그때 그때 맞추어 사용하면 된다.


가장 많이 사용하는 것이 onLocationChanged() 일텐데, 이것을 관리하기 위해 LocationManager 을 선언과 생성을 해줍니다.



  

public class Test_Activity extends MapActivity implements LocationListener {

  LocationManager locManager; // 선언

  @Override

	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);

		setContentView(R.layout.test);



locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); // 생성

// GPS 사용시 

//locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000, 0, this);

// 3G,4G,WIFI 사용시

// locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 0, this);

}

}

이런식으로 지정해주시면 됩니다.

requestLocationUpdates(GPS,네트워크 방식지정 , 시간(ms) , 거리(m) , 객체리스너) 로 이루어져 있고

이 설정에 따라서  onLocationChanged() 이 작동하기 때문에 이 설정을 잘 이해해주시는게 좋습니다.

+ Recent posts