티스토리 뷰

Android/Etc

[ Etc #16 ] Android Foldable Status Event

녹색꼬맹이 2024. 3. 22. 15:29
반응형
SMALL

폴드 유저로써 앱 개발 시에 폴드를 펼쳤을 때를 알고 싶어서 찾아봤다.

https://developer.android.com/guide/topics/large-screens/make-apps-fold-aware?hl=ko

 

앱에서 접힌 상태 인식  |  Android 개발자  |  Android Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. 앱에서 접힌 상태 인식 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 펼친 상태의 대형 디스플레이

developer.android.com

 

2024.03.26 - [Android/Etc] - [ Etc #17 ] Android Foldable 상태 유지 되도록

 

lifecycleScope.launch(Dispatchers.Main) {
            lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) {
                WindowInfoTracker.getOrCreate(this@MainActivity)
                    .windowLayoutInfo(this@MainActivity)
                    .collect { newLayoutInfo ->
                        // Use newLayoutInfo to update the layout.
                        if (newLayoutInfo.displayFeatures.isNotEmpty()) {
                            val foldingFeature = newLayoutInfo.displayFeatures[0] as FoldingFeature
                            CmLog.d("## foldingFeature.state : ${foldingFeature.state}")
                            if (foldingFeature.state == FoldingFeature.State.FLAT) {
                                // 폴더블 기기가 펼쳐져 있을 때 사용할 로직
                            }
                        }
                    }
            }
        }

 

반응형
WindowInfoTracker 

targetSDK 33 이하 
// dependencies
implementation 'androidx.window:window:1.1.0'

targetSDK 34 이상
implementation 'androidx.window:window:1.2.0'

 

이거 가지고 sdk 를 올리기에는 변경해야 될 부분들이 너무 많아 .. 

 

아직 34 안나왔으니까 일단 요렇게 해보도록 하지

 

foldingFeature.state 값을 확인해 보면

// 반쯤 펼쳐졌을 때 
--->  FoldingFeature.State.HALF_OPENED

// 완전 히 펼쳐졌을 때 
---> FoldingFeature.State.FLAT
반응형
LIST
댓글