투케이2K

101. (AndroidStudio/android/java) LocationManager 사용해 사용자 디바이스에서 위도 (Latitude) , 경도 (Longitude) 추출 본문

Android

101. (AndroidStudio/android/java) LocationManager 사용해 사용자 디바이스에서 위도 (Latitude) , 경도 (Longitude) 추출

투케이2K 2021. 4. 1. 09:12
반응형

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : AndroidStudio

개발 언어 : java

/* =========================== */

/* =========================== */

[소스 코드]

 

private final LocationListener mLocationListener = new LocationListener() {
	public void onLocationChanged(Location location) {
		//TODO 여기에서 위치값이 갱신되면 이벤트가 발생한다
		//TODO 값은 Location 형태로 리턴되며 좌표 출력 방법은 다음과 같다

		double longitude = location.getLongitude(); //경도
		double latitude = location.getLatitude();   //위도
		double altitude = location.getAltitude();   //고도
		float accuracy = location.getAccuracy();    //정확도
		String provider = location.getProvider();   //위치제공자

		/**
		 * Gps 위치제공자에 의한 위치변화. 오차범위가좁다
		 * Network 위치제공자에 의한 위치변화
		 * Network 위치는 Gps에 비해 정확도가 많이 떨어진다
		 */

		Log.d("---","---");
		Log.w("//===========//","================================================");
		Log.d("","\n"+"[A_GPS > LocationListener() 메소드 : 위치 정보 확인 실시]");
		Log.d("","\n"+"[위치 정보 : "+String.valueOf(provider)+"]");
		Log.d("","\n"+"[정확도 : "+String.valueOf(accuracy)+"]");
		Log.d("","\n"+"[위도 : "+String.valueOf(latitude)+"]");
		Log.d("","\n"+"[경도 : "+String.valueOf(longitude)+"]");
		Log.d("","\n"+"[고도 : "+String.valueOf(altitude)+"]");
		Log.w("//===========//","================================================");
		Log.d("---","---");

		try {
			String data = "";
			data += "geo:";
			data += latitude;
			data += ",";
			data += longitude;
			//TODO 위도 경도값 데이터 토스트 메시지 출력
			Toast.makeText(getApplication(),String.valueOf(data),Toast.LENGTH_SHORT).show();
		}
		catch (Exception e){
			e.printStackTrace();
		}

		//TODO GPS 정보를 미수신할때는 반드시 자원해체를 해주어야 한다
		try {
			locationManager.removeUpdates(mLocationListener);
		}
		catch (Exception e){
			e.printStackTrace();
		}
	}
	public void onProviderDisabled(String provider) {
		//TODO Disabled 경우
		Log.d("---","---");
		Log.d("//===========//","================================================");
		Log.d("","\n"+"[A_GPS > onProviderDisabled() 메소드 실행]");
		Log.d("","\n"+"[provider : "+String.valueOf(provider)+"]");
		Log.d("//===========//","================================================");
		Log.d("---","---");
	}

	public void onProviderEnabled(String provider) {
		//TODO Enabled 경우
		Log.d("---","---");
		Log.d("//===========//","================================================");
		Log.d("","\n"+"[A_GPS > onProviderEnabled() 메소드 실행]");
		Log.d("","\n"+"[provider : "+String.valueOf(provider)+"]");
		Log.d("//===========//","================================================");
		Log.d("---","---");
	}

	public void onStatusChanged(String provider, int status, Bundle extras) {
		//TODO Status 변경시
		Log.d("---","---");
		Log.d("//===========//","================================================");
		Log.d("","\n"+"[A_GPS > onStatusChanged() 메소드 실행]");
		Log.d("","\n"+"[provider : "+String.valueOf(provider)+"]");
		Log.d("","\n"+"[status : "+String.valueOf(status)+"]");
		Log.d("","\n"+"[Bundle : "+String.valueOf(extras)+"]");
		Log.d("//===========//","================================================");
		Log.d("---","---");
	}
};

/* =========================== */

/* =========================== */

[결과 출력]

/* =========================== */

/* =========================== */

[파일 첨부]

소스코드.txt
0.01MB

/* =========================== */

반응형
Comments