반응형
GPS 기능을 비활성화 하였을 때 설정 페이지로 이동하기
// MainActivity onRequestPermissionsResult
// GPS 사용자 기기의 현재 위치 정보 확인 및 권한 설정
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
// 사용 권한이 허용되어있으면 위치를 받아오는 코드 실행
if (ContextCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
&& ContextCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
getLocation();
}
else if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
// GPS가 비활성화 되어있으면 설정 대화 상자 출력
showGPSDisabledAlertToUser();
}
else { // 사용 권한이 없으면 권한 추가
ActivityCompat.requestPermissions(MainActivity.this,
new String[] { Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION }, 100);
}
}
// GPS 기능 설정 대화 상자 출력
private void showGPSDisabledAlertToUser(){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setMessage("GPS 기능이 비활성화되어 있습니다.\n기능을 활성화하시겠습니까?")
.setCancelable(false)
.setPositiveButton("GPS 설정 페이지로 이동하기",
(dialog, id) -> {
Intent callGPSSettingIntent = new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(callGPSSettingIntent);
});
alertDialogBuilder.setNegativeButton("취소",
(dialog, id) -> dialog.cancel());
AlertDialog alert = alertDialogBuilder.create();
alert.show();
}
}
실행 화면
- GPS 기능을 비활성화 하였을 때의 화면
- GPS 설정 페이지로 이동하기를 누른 화면
반응형