본문 바로가기

Programming/Android

[Android] GPS 설정 체크하기

[ Android GPS Check ]

 

public boolean checkGPSService() {
LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
// GPS OFF 일때 Dialog 표시
new MaterialDialog.Builder(this)
.title("위치 서비스 설정")
.content("위치 서비스 기능(GPS)을 설정해주세요.")
.positiveText("확인")
.onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
// GPS설정 화면으로 이동
Intent intent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
intent.addCategory(Intent.CATEGORY_DEFAULT);
startActivity(intent);
}
}).backgroundColor(getResources().getColor(R.color.gray_33)).cancelable(false).canceledOnTouchOutside(false).show();
return false;
} else {
return true;
}
}

 

 

※ 무조건 GPS On인 App인 경우 GPS OFF를 체크하고 싶다면 onResume함수가 아닌 onWindowFocusChanged 함수로 체크

 

이유 : onResume 함수는 Status Bar의 상태는 체크하지 못한다. 따라서 onWindowFocusChanged함수로 체크해야 한다.

 

@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if(hasFocus) {
checkGPSService();
}
}



'Programming > Android' 카테고리의 다른 글

[Android] Square ImageView (정사각형 ImageView)  (0) 2017.05.03
[Android] Spannable  (0) 2017.01.02
[Android] Volley & Patch request  (0) 2016.12.18
[Android] Activity Life Cycle(생명주기)  (1) 2015.12.14
[Android] 외부 앱 실행  (0) 2015.11.30