프로그래밍 언어/Android

Android에서 프로그래밍 방식으로 현재 GPS 위치를 얻는 방법

Rateye 2021. 7. 7. 10:13
728x90
반응형

 

질문 : Android에서 프로그래밍 방식으로 현재 GPS 위치를 얻는 방법은 무엇입니까?

프로그래밍 방식으로 GPS를 사용하여 현재 위치를 가져와야합니다. 어떻게 할 수 있습니까?

답변

현재 위치의 GPS 좌표를 얻기 위해 단계별 설명이 포함 된 작은 응용 프로그램을 만들었습니다.

완전한 예제 소스 코드는 Get Current Location 좌표, City name-in Android에 있습니다.

작동 방식보기 :

  • 우리가해야 할 일은 매니페스트 파일에이 권한을 추가하는 것입니다.
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  • 그리고 다음과 같이 LocationManager 인스턴스를 만듭니다.
    LocationManager locationManager = (LocationManager)
    getSystemService(Context.LOCATION_SERVICE);
  • GPS가 활성화되어 있는지 확인하십시오.
  • 그런 다음 LocationListener를 구현하고 좌표를 가져옵니다.
    LocationListener locationListener = new MyLocationListener();
    locationManager.requestLocationUpdates(
    LocationManager.GPS_PROVIDER, 5000, 10, locationListener);
  • 이를위한 샘플 코드는 다음과 같습니다.

 

/*---------- Listener class to get coordinates ------------- */
private class MyLocationListener implements LocationListener {

    @Override
    public void onLocationChanged(Location loc) {
        editLocation.setText("");
        pb.setVisibility(View.INVISIBLE);
        Toast.makeText(
                getBaseContext(),
                "Location changed: Lat: " + loc.getLatitude() + " Lng: "
                    + loc.getLongitude(), Toast.LENGTH_SHORT).show();
        String longitude = "Longitude: " + loc.getLongitude();
        Log.v(TAG, longitude);
        String latitude = "Latitude: " + loc.getLatitude();
        Log.v(TAG, latitude);

        /*------- To get city name from coordinates -------- */
        String cityName = null;
        Geocoder gcd = new Geocoder(getBaseContext(), Locale.getDefault());
        List<Address> addresses;
        try {
            addresses = gcd.getFromLocation(loc.getLatitude(),
                    loc.getLongitude(), 1);
            if (addresses.size() > 0) {
                System.out.println(addresses.get(0).getLocality());
                cityName = addresses.get(0).getLocality();
            }
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        String s = longitude + "\n" + latitude + "\n\nMy Current City is: "
            + cityName;
        editLocation.setText(s);
    }

    @Override
    public void onProviderDisabled(String provider) {}

    @Override
    public void onProviderEnabled(String provider) {}

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {}
}
출처 : https://stackoverflow.com/questions/1513485/how-do-i-get-the-current-gps-location-programmatically-in-android
728x90
반응형