안드로이드 immersive

갤럭시 s8 의 이상한 기능

  • 갤럭시 s8 에서 특정 설정을 하면 소트키가 항상 숨겨지는 모드가 존재 해서 내가 추가한 내용은 아니지만 마치 이머시브 모드 처럼 동작 하는 현상
  • 애플리케이션 개발 중에는 몰라도 될거 같지만 막상 개발하다 보면 알아야 도움 되는 내용입니다.
  • 알아야 하는 내용
    • 애플리케이션 시작시 소프트키가 활성화 되어 있는지 체크 해야 하는부부
    • 에플리케이션 실행 중 변경 되는 내용 이렇게 2가지 경우가 있습니다.
  • 애플리케이션 시작하면서 확인 하는 코드
    • enable 가 0 보다 크면 소프트 키가 안보이는 상태 입니다.
        var enable = 0
        try {
            enable = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
                Settings.Global.getInt(activity.contentResolver, "navigationbar_hide_bar_enabled")
            } else {
                -1
            }
        }catch (e: Exception){
        }
    
  • 런타임에서 리스너로 확인 하는 방법
    • arg 가 2일때 소프트 키가 안보이는 상태 입니다.
        val decorView = activity.window.decorView
        decorView.setOnSystemUiVisibilityChangeListener {arg ->
            log.d("Current arg: " + arg)
            if(arg == 2){
              //TODO 소포트키 안보임
            }else{
              //TODO 소포트 보임
            }
        }
    

PyeongHo

즐겁게 또 즐겁게