안녕하세요. 안드로이드와 안드로이드 accessibility를 공부한지 2주된 백수입니다..
현재 TalkBack과 같은 서비스 앱을 카카오톡 환경에서 작동하게 구현할려고 합니다... 만. TalkBack코드는 안드로이드 초보인 제가 보기에는 힘드네요..
기본적은 Accessiblity service프로그램은 포커스 기능이(뷰를 클릭하면 선택이 되어지는) 기본적으로 제공되지는 않더군요.
아마 어디에서 옵션값을 설정해 줘야 하는것 같은데.. 잘 보이지는 않네요..
혹시, Accessiblity service에서 포커스 기능을 TalkBack처럼 사용하는 방법이나 코드가 있을까요?
그리고 Accessiblity Event에서 "TYPE_VIEW_CLICKED"같은 이벤트가 발생하질 않네요.. 분명 TYPES_ALL_MASK을 시켜줬는데도 말이죠.. 뭐가 문제일까요?!
가르켜 주시면 감사하겠습니다 ( ; _ ; )
//Configure these here for compatibility with API 13 and below.
AccessibilityServiceInfo config = new AccessibilityServiceInfo();
config.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
// config.eventTypes += AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED;
config.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC;
config.feedbackType |= AccessibilityServiceInfo.FEEDBACK_SPOKEN;
config.feedbackType |= AccessibilityServiceInfo.FEEDBACK_AUDIBLE;
config.feedbackType |= AccessibilityServiceInfo.FEEDBACK_HAPTIC;
config.flags |= AccessibilityServiceInfo.DEFAULT;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
config.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY;
config.flags |= AccessibilityServiceInfo.FLAG_REPORT_VIEW_IDS;
config.flags |= AccessibilityServiceInfo.FLAG_REQUEST_FILTER_KEY_EVENTS;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
config.flags |= AccessibilityServiceInfo.FLAG_RETRIEVE_INTERACTIVE_WINDOWS;
}
config.notificationTimeout = 0;
config.flags |= AccessibilityServiceInfo.FLAG_REQUEST_TOUCH_EXPLORATION_MODE;
if (Build.VERSION.SDK_INT >= 16)
//Just in case this helps
config.flags = AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
setServiceInfo(config);