[ 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 |