반응형
< GPS 사용하기 위한 설정 방법 >
# 안드로이드 스튜디오에서 MAP 기능을 사용하기전 GPS 기능을 연동하기 위한 설정 방법!
- 우선 AndroidManifest.xml 파일안에 권한 추가 필요!
- 위치 중요! <application> 상단에 작성해 주어야 한다.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
# 이제 MainActivity 작성
- 작성중 LocationListener = new LocationListener() 부분에서 에러 방생됨.
- 항목 한가지만 임플리먼트 해주면됨
package com.ksg.gps;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import java.util.List;
import android.Manifest;
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() + " , rudeh : " + location.getLongitude());
}
};
// 3. 로케이션 매니저에, 우리가 작성한 함수를 적용한다.
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;
}
// 몇초마다 체크할지
// 위치 설정 인데 에뮬레이터이므로 위치설정못하므로 그냥 -1로 설정함. 정수로 설정하면 미터단위로 거리 섲렁가능
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 (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);
}
}
# 메인 엑티비티 실행!
- 실행후 에뮬레이터 위에 ... 을 클릭
- 실행창에서 Location 위치를 검색하고 저장후에 앱을 재실행 하면
- 로그에 현재 위치 경도,위도가 출력됨
다음 게시글로 계속~!
728x90
반응형
'Android Studio > 기능 사용법' 카테고리의 다른 글
Android Studio : (2) Google map 불러오는 코드 작성 (0) | 2024.06.19 |
---|---|
Android Studio : (1) Google map 불러오기 설정 방법 (API 키설정 필요 매우 복잡) (0) | 2024.06.19 |
Android Studio : Fragment 설계를 위한 탭바 구현하기 (0) | 2024.06.18 |
Android Studio : 카메라 APP 만들기전 권한 설정 (복잡!) (0) | 2024.06.14 |
Android Studio : Toast / Snackbar 사용하는 방법 (0) | 2024.06.12 |