<!-- 사용권한 설정-->
<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"/>
play-services-maps
com.karumi:dexter
= 지도 뿌리는데 사용play-services-location
// 구글 맵 사용관련
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'
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();
}
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();
}