Notice
Recent Posts
Recent Comments
Link
투케이2K
521. (kotlin/코틀린) [유틸 파일] getScheduleExactAlarmPermissionEnable : Android 13 : 스케줄 및 알람 설정 권한 확인 본문
Kotlin
521. (kotlin/코틀린) [유틸 파일] getScheduleExactAlarmPermissionEnable : Android 13 : 스케줄 및 알람 설정 권한 확인
투케이2K 2024. 8. 26. 09:09[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [getScheduleExactAlarmPermissionEnable] : [Android 13] : [스케줄 및 알람 설정 권한 확인]
// -----------------------------------------------------------------------------------------
fun getScheduleExactAlarmPermissionEnable(mContext: Context): Boolean {
/**
* -------------------------------------------
* [호출 방법]
*
* 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>
* <uses-permission android:name="android.permission.USE_EXACT_ALARM"></uses-permission>
*
* -------------------------------------------
* [참고 사항] :
*
* <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"></uses-permission> 권한은
* Android 13 이상 부터 사전 부여 상태가 되지 않으니 사전 해당 권한 체크 필요
* -------------------------------------------
* [참고 사이트] :
*
* https://developer.android.com/about/versions/14/changes/schedule-exact-alarms?hl=ko
* -------------------------------------------
*/
// [Context 지정]
context = mContext
// [초기 리턴 변수 선언]
var resultData = false
// [OS 버전 확인 실시]
var osVersion = ""
try { osVersion = Build.VERSION.RELEASE } catch (ex: Exception) { ex.printStackTrace() }
// [로직 처리 수행 실시]
try {
resultData = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
// [OS 13 이상은 사전 부여 되지 않은 상태로 권한 부여 상태 체크 필요]
val alarmManager = mContext.getSystemService(Context.ALARM_SERVICE) as AlarmManager
alarmManager.canScheduleExactAlarms()
} else {
// [OS 13 미만은 사전 부여 상태로 true 변경]
true
}
} catch (e: Exception) {
S_Log._printStackTrace_(mContext, S_FinalData.LOG_BUG_STATE, null, e)
}
// ===============================================================
S_Log._F_(mContext, "스케줄 및 알람 설정 권한 부여 상태 확인", arrayOf(
"OS Version :: $osVersion",
"RETURN :: $resultData"
))
// ===============================================================
// [결과 리턴 실시]
return resultData
}
반응형
'Kotlin' 카테고리의 다른 글
Comments