위치 기반 서비스 _ 로그로 위치 확인하기
=> ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION
1. app/manifests/AndroidManifest.xml 권한 설정하기
...
xmlns:tools="http://schemas.android.com/tools">
// 기본 : 세밀한 위치
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
// 추가 : 기지국 위치
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<application
...
2. GPS 사용 방법 : 좌표 정보 표시
- 로그로 찍어서 위치 정보 확인하기
public class MainActivity extends AppCompatActivity {
LocationManager locationManager;
LocationListener locationListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 1. 위치를 가져오기 위해서는,
// 시스템 서비스로 부터, 로케이션 메니저를 받아 온다.
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
// 2. 위치가 바뀔때마다, 우리가 처리해야 할 함수 작성!
locationListener = new LocationListener() {
@Override
public void onLocationChanged(@NonNull Location location) {
Log.i("GPS MAIN", "위도 : " + location.getLatitude() + ", 경도 : " + location.getLongitude());
}
};
// 3. 로케이션 매니저에, 우리가 작성한 함수를 적용한다.
// 3000 3초마다 바꿔고, 3미터마다 알려줘(-1 거리는 사용안하겠다.)
// 권한 체크
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// 허용하시겠습니까? 물어보는 것
ActivityCompat.requestPermissions(MainActivity.this,
new String[] {android.Manifest.permission.ACCESS_FINE_LOCATION, android.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(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.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);
}
}
}
- 안드로이드 앱 좌표 설정하기
- 점점점을 누르면 새로운 페이지로 열린다.
'Android Studio' 카테고리의 다른 글
[Android Studio] 구글맵을 활용하여 지도로 할 수 있는 작업 _ LatLng, Marker (0) | 2024.06.19 |
---|---|
[Android Studio] 구글맵 지도를 사용해서 지도 표시하는 방법 _ 설정 방법, 화면 개발 (0) | 2024.06.18 |
[Android Studio] 탭바 만들기 _ 라이브러리 설치 및 사용 방법 (0) | 2024.06.18 |
[Android Studio] 네트워크로 form-data 보내는 방법 _ retrofit2 (0) | 2024.06.17 |
[Android Studio] 화면 업데이트 하는 방법 _ ArrayList, like (0) | 2024.06.17 |