티스토리 뷰

android

system screen rotate click listener

노명규 2023. 3. 7. 18:09
private val autoRotateObserver = AutoRotateObserver(this, listener)
contentResolver.registerContentObserver(
    Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION),
    true, autoRotateObserver
)
override fun onDestroy() {
    super.onDestroy()
    contentResolver.unregisterContentObserver(autoRotateObserver)
}
class AutoRotateObserver(context: Context, listener: RotateConfigEventListener) : ContentObserver(null) {

    private val mContext: Context = context
    private val listener = listener

    override fun onChange(selfChange: Boolean) {
        super.onChange(selfChange)
        // 설정값이 변경되면 호출됨
        val autoRotateEnabled = Settings.System.getInt( mContext.contentResolver, Settings.System.ACCELEROMETER_ROTATION, 0) == 1

//        Log.d(LOGTAG,"AutoRotateObserver onChange selfChange : ${selfChange} / ${autoRotateEnabled}")
        listener.onChangeRotate(autoRotateEnabled)
    }
}

autoRoateEnabled이 true면 회전 on, false면 off

'android' 카테고리의 다른 글

di 패턴, dagger, hilt  (0) 2023.04.04
retrofit으로, rx and coroutine  (0) 2023.02.03
android mvvm 예제  (0) 2023.01.30
retrofit  (0) 2022.09.21
by viewmodels() 쓰는법,  (0) 2022.08.18