Android Dev/Snippets & Samples
앱 진입시 스크린 리더(TalkBack, Voice Assistant) 감지하기
Guter Mann
2018. 12. 15. 23:06
반응형
[Snippet]
앱 진입시 "스크린 리더" 감지하기
@Override
protected void onResume() {
super.onResume();
AccessibilityManager accessibilityManager = (AccessibilityManager) getSystemService(ACCESSIBILITY_SERVICE);
boolean isScreenReaderEnabled = accessibilityManager.isEnabled() && accessibilityManager.isTouchExplorationEnabled();
if (isScreenReaderEnabled) {
// 스크린 리더 활성화시
} else {
// 스크린 리더 비활성화시
}
}
[Sample]
"스크린 리더" 활성화에 따른 UI 변경
public class MainActivity extends AppCompatActivity {
private TextView mTextView;
private ImageButton mImageButton;
private Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = findViewById(R.id.textView);
mImageButton = findViewById(R.id.imageButton);
mButton = findViewById(R.id.button);
}
@Override
protected void onResume() {
super.onResume();
AccessibilityManager accessibilityManager = (AccessibilityManager) getSystemService(ACCESSIBILITY_SERVICE);
boolean isScreenReaderEnabled = accessibilityManager.isEnabled() && accessibilityManager.isTouchExplorationEnabled();
if (isScreenReaderEnabled) {
mTextView.setText(getResources().getString(R.string.screen_reader_enable));
mButton.setVisibility(View.VISIBLE);
mImageButton.setVisibility(View.INVISIBLE);
} else {
mTextView.setText(getResources().getString(R.string.screen_reader_disable));
mButton.setVisibility(View.INVISIBLE);
mImageButton.setVisibility(View.VISIBLE);
}
}
}
프로젝트 화일
ScreenReaderDetectTest.zip
[실행결과]