지도

김형우·2022년 1월 25일
0

android

목록 보기
10/10
  1. 파일생성
  • GoogleMap
  1. AndroidManifest.xml
<!-- 사용권한 설정-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>
  1. 빌드검색
  • play-services-maps
  • com.karumi:dexter = 지도 뿌리는데 사용
  • play-services-location
  1. 그래들 확인
// 구글 맵 사용관련
    implementation 'com.google.android.gms:play-services-maps:18.0.2'
    implementation 'com.karumi:dexter:6.2.3'
    implementation 'com.google.android.gms:play-services-location:19.0.1'
  1. 자바파일에
  • checkPermission(); 쓰고 오버라이딩

5-1.

private void checkPermission() { Dexter.withContext(this).withPermission(Manifest.permission.ACCESS_COARSE_LOCATION).withListener(new PermissionListener() {
까지 쓰면 자동 오버라이딩

5-2.

// 화면에서 지도를 선택했을때 위치를 잡아주는 설정
private void checkPermission() {
  Dexter.withContext(this).withPermission(Manifest.permission.ACCESS_COARSE_LOCATION).withListener(new PermissionListener() {
    @Override
    public void onPermissionGranted(PermissionGrantedResponse permissionGrantedResponse) {

    }

    @Override
    public void onPermissionDenied(PermissionDeniedResponse permissionDeniedResponse) {

    }

    @Override
    public void onPermissionRationaleShouldBeShown(PermissionRequest permissionRequest, PermissionToken permissionToken) {

    }
  }).check();
}
  1. 오버라이딩 부분
  • 접근 허가/한번만허가/거부 세가지 설정해라.

6-1. 퍼미션 부분(허가받음)

  • onPermissionGranted
  • Toast.makeText(GoogleMap.this, "Permission Granted", Toast.LENGTH_SHORT).show();
    : (GoogleMap.this = 여기에,
    : "Permission Granted" = 이 텍스트를 ,
    : Toast.LENGTH_SHORT = 짧게)
    : .show(); = 보이겠다
    : 토스트 (작은 팝업창) 띄워서 허가여부 물어봄
@Override
  public void onPermissionGranted(PermissionGrantedResponse permissionGrantedResponse) {                
    Toast.makeText(GoogleMap.this, "Permission Granted", Toast.LENGTH_SHORT).show();                
  }

6-2. 선택적 허가

  • onPermissionDenied
@Override
  public void onPermissionDenied(PermissionDeniedResponse permissionDeniedResponse) {

    Intent intent = new Intent();
    // 이 응용프로그램이 세팅값에 접근하도록 허용해달라는 뜻
    intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
    Uri uri = Uri.fromParts("package", getPackageName(),"");
    intent.setData(uri);
    startActivity(intent);

  }

6-3. 계속적인 허가 요청

  • onPermissionRationaleShouldBeShown
@Override
  public void onPermissionRationaleShouldBeShown(PermissionRequest permissionRequest, PermissionToken permissionToken) {
    permissionToken.continuePermissionRequest();
  }
profile
The best

0개의 댓글