투케이2K

107. (AndroidStudio/android/java) LocationManager 사용해 안드로이드 시스템 내부 gps 위치 권한 활성 상태 확인 및 설정창 이동 실시 본문

Android

107. (AndroidStudio/android/java) LocationManager 사용해 안드로이드 시스템 내부 gps 위치 권한 활성 상태 확인 및 설정창 이동 실시

투케이2K 2021. 4. 20. 16:27

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : AndroidStudio

개발 언어 : java

/* =========================== */

/* =========================== */

[소스 코드]

 

//TODO ====== [안드로이드 시스템 GPS 기능 활성 여부 확인 메소드] ======
public boolean getGpsStateCheck(){
	try {
		/**
		 * [설 명]
		 * 1. LocationManager : 안드로이드 시스템 내부 위치 권한 활성 여부를 확인할 수 있다
		 * 2. 위치 권한 사용 시 필요한 퍼미션 종류 :
		 *    - <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
		 *    - <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
		 * */
		LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
		if(!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){ //TODO 위치 권한 비활성인 경우
			Log.d("---","---");
			Log.e("//===========//","================================================");
			Log.d("","\n"+"[A_GPS > getGpsStateCheck() 메소드 : 위치 권한 활성 여부 확인]");
			Log.d("","\n"+"[상태 : 비활성]");
			Log.e("//===========//","================================================");
			Log.d("---","---");
			return false;
		}
		else { //TODO 위치 권한 활성인 경우
			Log.d("---","---");
			Log.w("//===========//","================================================");
			Log.d("","\n"+"[A_GPS > getGpsStateCheck() 메소드 : 위치 권한 활성 여부 확인]");
			Log.d("","\n"+"[상태 : 활성]");
			Log.w("//===========//","================================================");
			Log.d("---","---");
			return true;
		}
	}
	catch (Exception e){
		Log.d("---","---");
		Log.e("//===========//","================================================");
		Log.d("","\n"+"[A_GPS > getGpsStateCheck() 메소드 : 위치 권한 활성 여부 확인]");
		Log.d("","\n"+"[상태 : CATCH - Error]");
		Log.e("//===========//","================================================");
		Log.d("---","---");
		e.printStackTrace();
		return false;
	}
}




//TODO ====== [안드로이드 시스템 GPS 설정창 이동 메소드] ======
public void goGpsSettingsIntent(){
	try {
		Log.d("---","---");
		Log.w("//===========//","================================================");
		Log.d("","\n"+"[A_GPS > goGpsSettingsIntent() 메소드 : 위치 권한 설정창 인텐트 이동 실시]");
		Log.w("//===========//","================================================");
		Log.d("---","---");
		Intent go_gps = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
		go_gps.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
		startActivity(go_gps);
	}
	catch (Exception e){
		e.printStackTrace();
	}
}

/* =========================== */

/* =========================== */

[결과 출력]

/* =========================== */

반응형
Comments