how to detect accessibility settings on android is enabled/disabled

前端 未结 5 1369
清歌不尽
清歌不尽 2021-01-28 12:34

I\'m particularly interested in high contrast text, color correction, and magnification settings. I did some research online, couldn\'t fi

5条回答
  •  天命终不由人
    2021-01-28 12:57

    What a did was

    private fun checkForAcessibility(): Boolean {
        try {
            val accessibilityManager = context.getSystemService(Context.ACCESSIBILITY_SERVICE) as AccessibilityManager
            val accessibilityManagerClass = accessibilityManager.javaClass
            val isHighTextContrastEnabledMethod = accessibilityManagerClass.getMethod("isHighTextContrastEnabled")
            val result: Any = isHighTextContrastEnabledMethod.invoke(accessibilityManager) ?: return AccessibilityEnabledValue.ERROR_QUERYING_VALUE
    
            if (result !is Boolean) {
                return AccessibilityEnabledValue.ERROR_QUERYING_VALUE
            }
    
            return if (result) {
                AccessibilityEnabledValue.TRUE
            } else {
                AccessibilityEnabledValue.FALSE
            }
        } catch (e: Exception) {
            return AccessibilityEnabledValue.ERROR_QUERYING_VALUE
        }
    }
    
    
    
    
    enum class AccessibilityEnabledValue(val value: String) {
        TRUE("true"),
        FALSE("false"),
        ERROR_QUERYING_VALUE("error_querying_value")
    }
    

    I've noticed that isHighTextContrastEnabled() method does not contain parameters.

提交回复
热议问题