아래에 만들어진 Class 파일은 제가 공부하면서 쉽게 사용하기 위해서 만들어 놓은 java파일들 입니다.
유용하게 쓰시거나 공부하시는데 도움이 되었으면 좋겠습니다.
Location_TestActivity.java
package com.Test.Location;
import com.Test.Location.LocationClass.OnLocationListener;
import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
public class Location_TestActivity extends Activity
{
//LocationClass를 쓰기 위해서 선언
private LocationClass locationclass = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// locationclass를 생성(생성자에 Context를 보냄)
locationclass = new LocationClass(Location_TestActivity.this);
// locationclass에서 보내오는 데이터를 받기 위한 리스너
locationclass.setOnLocationListener(new OnLocationListener()
{
@Override
public void onRecvMessage(String sData)
{
// sData는 소스점 4자리 위도 경도 정보를 가지고 있음
// TODO Auto-generated method stub
Toast.makeText(Location_TestActivity.this, sData, 2000).show();
}
});
// 위치 정보를 받기 위해서 위치제공자 초기화
locationclass.init_Location();
}
// Activity가 사용자와 상호작용하기 전 호출
public void onResume() {
super.onResume();
// Location 서비스 시작
locationclass.onResumeLocation();
}
// 다른 Activity가 보여질 때 호출
public void onPause() {
super.onPause();
// Location 서비스 중지
locationclass.onPauseLocation();
}
}
위와 같은 Class 파일을 하나 만들고 Activity에 Class를 불러와서 호출해서 사용하면 된다.
위의 소스는 일정 시간안에 일정거리를 이동하게 되면 위치정보값을 출력하게 만들어 놓았는데
버튼을 클릭하였을때만 위치정보를 가져오기 위해서는 아래와 같은 소스를 추가하여 주면 된다.
xml파일에 버튼을 하나 만든다. 버튼의 id는 bt_gps라고 하자.
메인 Activity에 버튼클릭에 대한 리스너를 작성한다.
Button btGPS = (Button) findViewById(R.id.bt_gps);
btGPS.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
// onResume에서 호출하는 Location 서비스를 버튼을 클릭하였을때 작동 시킨다.
locationclass.onResumeLocation();
}
});
onCreate 함수 안에 위와 같이 작성을 하여 준다.
버튼을 클릭하였을때만 위치정보를 호출하게 된다.
그리고 위치정보를 받게 되면 다시 Location 서비스를 종료 시키면 된다.
// locationclass에서 보내오는 데이터를 받기 위한 리스너
locationclass.setOnLocationListener(new OnLocationListener()
{
@Override
public void onRecvMessage(String sData)
{
// sData는 소스점 4자리 위도 경도 정보를 가지고 있음
// TODO Auto-generated method stub
Toast.makeText(Location_TestActivity.this, sData, 2000).show();
// Location 서비스 중지
locationclass.onPauseLocation();
}
});
위와 같이 위치정보를 가져오는 리스너에서 위치정보를 받은 다음 바로 Location 서비스를 중지하여 준다.
그리고 마지막으로 onResume와 onPause에 선언되었던 Location 서비스들을 지운다.