Notice
Recent Posts
Recent Comments
Link
투케이2K
846. (Android/Java) [유틸 파일] getScheduleExactAlarmPermissionEnable : 스케줄 및 알람 설정 권한 확인 본문
Android
846. (Android/Java) [유틸 파일] getScheduleExactAlarmPermissionEnable : 스케줄 및 알람 설정 권한 확인
투케이2K 2024. 8. 22. 20:39[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Java / Kotlin
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [Android 13] : [스케줄 및 알람 설정 권한 확인]
// -----------------------------------------------------------------------------------------
public static boolean getScheduleExactAlarmPermissionEnable(Context mContext){
/**
* -------------------------------------------
* [호출 방법]
*
* C_Permission.getScheduleExactAlarmPermissionEnable(A_Intro.this);
* -------------------------------------------
* 1. 필요 퍼미션 :
*
* <!-- ============================================================= -->
* <!-- [MQTT 통신 사용 스케줄 및 알람 관리] -->
* <!-- ============================================================= -->
* <!-- [SCHEDULE_EXACT_ALARM : 안드로이드 12 이상 선언 필요] : [13 이상 alarmManager.canScheduleExactAlarms() 권한 부여 상태 체크 필요] -->
* <!-- ============================================================= -->
* <!-- [USE_EXACT_ALARM : 안드로이드 14 이상 선언 필요] -->
* <!-- ============================================================= -->
* <!-- [주의] : USE_EXACT_ALARM 권한은 캘린더 및 알람 시계 앱 목적으로 제작 된 앱이 사용할 수 있다 -->
* <!-- 참고 : 앱은 정책 언어 에 따라 적격을 갖추지 않는 한 매니페스트에서 이 권한이 있는 버전의 앱을 게시할 수 없습니다 -->
* <!-- ============================================================= -->
* <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
* <uses-permission android:name="android.permission.USE_EXACT_ALARM" />
*
* -------------------------------------------
* [참고 사항] :
*
* <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" /> 권한은
* Android 13 이상 부터 사전 부여 상태가 되지 않으니 사전 해당 권한 체크 필요
* -------------------------------------------
* [참고 사이트] :
*
* https://developer.android.com/about/versions/14/changes/schedule-exact-alarms?hl=ko
* -------------------------------------------
* */
// [Context 지정]
context = mContext;
// [초기 리턴 변수 선언]
boolean resultData = false;
// [OS 버전 확인 실시]
String osVersion = "";
try { osVersion = Build.VERSION.RELEASE; } catch (Exception ex) { ex.printStackTrace(); }
// [로직 처리 수행 실시]
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){
// [OS 13 이상은 사전 부여 되지 않은 상태로 권한 부여 상태 체크 필요]
AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
resultData = alarmManager.canScheduleExactAlarms();
}
else {
// [OS 13 미만은 사전 부여 상태로 true 변경]
resultData = true;
}
}
catch (Exception e){
S_Log._printStackTrace_(mContext, S_FinalMsg.LOG_BUG_STATE, null, e);
}
// ===============================================================
S_Log._F_(mContext, "스케줄 및 알람 설정 권한 부여 상태 확인", new String[]{
"OS Version :: " + String.valueOf(osVersion),
"RETURN :: " + String.valueOf(resultData)
});
// ===============================================================
// [결과 리턴 실시]
return resultData;
}
[결과 출력]
W///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.C_Permission.getScheduleExactAlarmPermissionEnable(C_Permission.java:1719)]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2024-08-22 13:20:16 목요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 스케줄 및 알람 설정 권한 부여 상태 확인]
I/: ----------------------------------------------------
I/: [LOG :: OS Version :: 14]
I/: ----------------------------------------------------
I/: [LOG :: RETURN :: true]
W///===========//: ================================================
반응형
'Android' 카테고리의 다른 글
Comments