제일 먼저 위도 경도를 구하기 위해선 권한을 먼저 획득해주어야한다.
Manifest 파일에 다음과 같이 권한을 수정해주자.
아래는
현재의 위도 경도를 Logcat에 로그를 남기도록 하는 코드이다.
주석을 참고하자.
public class MainActivity extends AppCompatActivity {
// 위경도를 구하기 위한 멤버변수 설정
LocationManager locationManager;
LocationListener locationListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 객체 생성 및 오버라이드
locationManager = (LocationManager) this.getSystemService(LOCATION_SERVICE);
locationListener = new LocationListener() {
// 위경도가 변경될 때 액션을 하는 onLocationChanged 메소드
@Override
public void onLocationChanged(@NonNull Location location) {
Log.i("myLocation", "위도 : " + location.getLatitude());
Log.i("myLocation", "경도 : " + location.getLongitude());
}
};
// 권한 Permission 체크
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{ Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION} ,
100);
return;
}
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
3000,
-1,
locationListener);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode == 100){
if(ActivityCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.ACCESS_COARSE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{ Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION} ,
100);
return;
}
// 일정 시간마다 Location Update를 요청하는 코드
// 3000 은 3초이다.
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
3000,
-1,
locationListener);
}
}
}
'Android' 카테고리의 다른 글
Android Studio - 안드로이드에서 구글 Maps SDK for Android 라이브러리 사용하기 (0) | 2022.07.29 |
---|---|
Android Studio - 에뮬레이터의 Location 설정하기 (0) | 2022.07.29 |
Android Studio - No speakable text present 에러 없애기 (0) | 2022.07.28 |
Android Studio - Fragment 와 Activity 연결 (0) | 2022.07.27 |
Android Studio - BottomNavigationView 사용하기 (.With Navigation Component) (0) | 2022.07.27 |
댓글