반응형
Greensky0026
삽질러의 대환장 공사판
Greensky0026
전체 방문자
오늘
어제
  • 분류 전체보기 (241)
    • Language (56)
      • JAVA (13)
      • Swift (38)
      • Kotlin (4)
      • Dart (0)
      • PHP (0)
      • JavaScript (1)
    • IDE & Framework (92)
      • Spring (10)
      • Android (48)
      • iOS (8)
      • NodeJS (1)
      • CodeIgniter (3)
      • Flutter (1)
      • 분류중 (18)
    • Infra (8)
    • Database (12)
    • VCS (4)
    • Debug Log (34)
      • java (7)
      • swift (3)
      • Android (9)
      • Web (7)
      • 삽질기 (7)
    • Others (19)
      • 코딩테스트 풀이 (0)
      • IT 이야기 (18)
    • 쉼터 (2)
    • 개발공부 (14)
      • Network (1)
      • 자료구조와 알고리즘 (2)
      • Code design (8)
      • ETC (1)
      • 아카이브 (1)

블로그 메뉴

    공지사항

    • 프로그래머스 코딩 테스트 관련글 비공개 처리

    인기 글

    태그

    • 예제
    • reduce
    • kotlin
    • map
    • Java
    • 타입
    • ios
    • level1
    • 프로그래밍
    • 공부
    • swfit
    • 코딩테스트
    • swift
    • IT
    • xcode
    • Android
    • JSP
    • 프로그래머스
    • 개발
    • 구축

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    Greensky0026

    삽질러의 대환장 공사판

    [Kotlin] doze모드 방지, 절전모드 방지 하도록 요청하기
    IDE & Framework/Android

    [Kotlin] doze모드 방지, 절전모드 방지 하도록 요청하기

    2022. 5. 13. 14:07
    반응형

    Doze and Stanby public reference

    https://developer.android.com/training/monitoring-device-state/doze-standby?hl=ko

     

    잠자기 및 앱 대기 모드에 맞게 최적화  |  Android 개발자  |  Android Developers

    앱에서 Android 6.0의 절전 기능을 테스트하고 최적화합니다.

    developer.android.com

     

     절전모드로 진입하게 된다면, 아래와같은 제한사항이 생긴다.

    FCM을 사용해 주기적으로 활성화 시키는 방법도 있지만, 앱단에서 해결할 수 있는 방법은 아래의 코드와 같다.

     

    제한사항

    • 네트워크 엑세스 정지
    • wake lock 무시
    • 유지보수 기간 지연
    • 동기화 어댑터 실행 X
    • JobScheduler 실행 X

     

    매니페스트에 권한 선언

    <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />

     

    절전모드 미진입 요청하기

    val pm = getSystemService(POWER_SERVICE) as PowerManager
    val packageName = packageName
    
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
        if (pm.isIgnoringBatteryOptimizations(packageName)) {
        } else {
            val intent = Intent()
            intent.action = Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
            intent.data = Uri.parse("package:$packageName")
            startActivityForResult(intent, 0)
        }
    }

     

    이렇게 요청하게 되면 사용에게 아래와 같이 묻게 된다.

     

    반응형
    저작자표시 비영리

    'IDE & Framework > Android' 카테고리의 다른 글

    [짧] FCM을 통해 앱 삭제여부 확인  (1) 2023.03.24
    Permission 처리를 좀 더 쉽게 하려면? TedPermission!  (0) 2022.05.23
    [짧] Android aar에 application proguard 규칙 적용시키기  (0) 2022.04.07
    [Kotlin] Android Room Database 기본 예제  (0) 2022.03.01
    [Kotlin]Android Firebase Cloud Message(FCM) - (1) Client  (0) 2022.02.26
      'IDE & Framework/Android' 카테고리의 다른 글
      • [짧] FCM을 통해 앱 삭제여부 확인
      • Permission 처리를 좀 더 쉽게 하려면? TedPermission!
      • [짧] Android aar에 application proguard 규칙 적용시키기
      • [Kotlin] Android Room Database 기본 예제
      Greensky0026
      Greensky0026
      점이 모여 선이 된다. 내 삽질도 언젠간 거대한 지하 도시가 되겠지!

      티스토리툴바