투케이2K

522. (kotlin/코틀린) [유틸 파일] goScheduleAlarmSetting : 앱 스케줄 및 알람 설정 창 인텐트 이동 본문

Kotlin

522. (kotlin/코틀린) [유틸 파일] goScheduleAlarmSetting : 앱 스케줄 및 알람 설정 창 인텐트 이동

투케이2K 2024. 8. 26. 09:11

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

        // -----------------------------------------------------------------------------------------
        // TODO [SEARCH FAST] : [goScheduleAlarmSetting] : 앱 스케줄 및 알람 설정 창 이동
        // -----------------------------------------------------------------------------------------
        fun goScheduleAlarmSetting(mContext: Context) {

            /**
             * // -----------------------------------------
             * [goScheduleAlarmSetting 메소드 설명]
             * // -----------------------------------------
             * 1. 앱 스케줄 및 알람 설정 창 이동
             * // -----------------------------------------
             * 2. 호출 방법 : C_Intent.goScheduleAlarmSetting(A_Intro@this)
             * // -----------------------------------------
             * 3. 필요 퍼미션 :
             *
             *     <!-- ============================================================= -->
             *     <!-- [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>
             *
             * // -----------------------------------------
             * 4. 주의 :
             *
             * 안드로이드 13 이상 SCHEDULE_EXACT_ALARM 권한은 사전 자동 부여 상태가 되지 않기에 alarmManager.canScheduleExactAlarms 사용 권한 부여 체크 필요
             * 구글 마켓 배포 수행 시 캘린더 및 알람 시계 앱이 아닌 경우는 적합한 적격을 갖추지 않는 한 매니페스트에서 이 권한이 있는 버전의 앱을 게시할 수 없습니다.
             * // -----------------------------------------
             * 5. 참고 사이트 :
             *
             * https://developer.android.com/about/versions/14/changes/schedule-exact-alarms?hl=ko
             * // -----------------------------------------
             */

            try {
                // ===============================================================
                S_Log._F_(mContext, "앱 스케줄 및 알람 설정 창 이동", null)
                // ===============================================================

                // [인텐트 이동 실시]
                val intent = Intent(Settings.ACTION_REQUEST_SCHEDULE_EXACT_ALARM)
                intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
                intent.data = Uri.parse("package:" + mContext.packageName)
                mContext.startActivity(intent)

            } catch (e: Exception) {
                S_Log._printStackTrace_(mContext, S_FinalData.LOG_BUG_STATE, null, e)
            }
        }

 

반응형
Comments