[안드로이드] GPS로 현재 위치(경도,위도,고도) 확인
프로그래밍/안드로이드2016. 6. 15. 21:22
반응형
public class tap3 extends Activity
{
TextView gpsStatus;
TextView gpsValue;
LocationManager LocMan;
String provider;
int count;
Location location1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.tap3);
LocMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
gpsStatus = (TextView) findViewById(R.id.txv_gps_status);
gpsValue = (TextView) findViewById(R.id.txv_gps);
provider = LocMan.getBestProvider(new Criteria(), true); // 최고의 GPS 찾기
Log.i("sinwho",provider );
}
public void onResume() // 프로그램 시작시
{
super.onResume();
count = 0;
LocMan.requestLocationUpdates(provider, 1000, 0, gpsListener); // 리스너 등록(위치 업데이트마다 gpsListener 호출), 매개변수 : GPS또는 네트워크, 업데이트 주기, 업데이트 거리, 리스너
gpsStatus.setText("현재 상태 : 서비스 시작");
Log.i("sinwho", "onResume");
//String temp = String.format("수신회수:%d\n위도:%f\n경도:%f\n고도:%f", count,location1.getLatitude(), location1.getLongitude(),location1.getAltitude());
//gpsValue.setText(temp);
}
public void onPause()
{
super.onPause();
LocMan.removeUpdates(gpsListener); // 끝낼때 리스너 제거
gpsStatus.setText("현재 상태 : 서비스 정지");
}
LocationListener gpsListener = new LocationListener() // GPS가 정보가 변경 될때 호출 되는 리스너
{
@Override
public void onLocationChanged(Location location) // 위에서 설정한 위치 변경시 호출
{
count++;
String temp = String.format("수신회수:%d\n위도:%f\n경도:%f\n고도:%f", count,location.getLatitude(), location.getLongitude(),location.getAltitude());
gpsValue.setText(temp);
Log.i("sinwho","onLocationChanged");
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) // 상태 변경시 호출
{
String tempStatus = "";
switch(status)
{
case LocationProvider.OUT_OF_SERVICE:
tempStatus = "범위 벗어남";
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
tempStatus = "일시적 불능";
break;
case LocationProvider.AVAILABLE:
tempStatus = "사용 가능";
break;
}
gpsStatus.setText(provider + "상태 변경 : " + tempStatus);
Log.i("sinwho", "onStatusChanged");
}
@Override
public void onProviderEnabled(String provider) {
Log.i("sinwho", "onProviderEnabled");
}
@Override
public void onProviderDisabled(String provider)
{
gpsStatus.setText("현재 상태 : 서비스 사용 불가");
Log.i("sinwho", "onProviderDisabled");
}
};
}
반응형
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드] Paint 속성 및 메서드 (0) | 2016.06.22 |
---|---|
[안드로이드] GPS 최근 위치 불러오기 (0) | 2016.06.15 |
[안드로이드] GPS 정보 얻어오기 (0) | 2016.06.15 |
[추천앱] 햄버거 메뉴가 궁금할땐 '햄버거 메뉴판' (0) | 2016.06.01 |
안드로이드 스튜디오 단축키 (0) | 2016.05.16 |