Example usage for android.accessibilityservice AccessibilityServiceInfo FEEDBACK_SPOKEN

List of usage examples for android.accessibilityservice AccessibilityServiceInfo FEEDBACK_SPOKEN

Introduction

In this page you can find the example usage for android.accessibilityservice AccessibilityServiceInfo FEEDBACK_SPOKEN.

Prototype

int FEEDBACK_SPOKEN

To view the source code for android.accessibilityservice AccessibilityServiceInfo FEEDBACK_SPOKEN.

Click Source Link

Document

Denotes spoken feedback.

Usage

From source file:com.example.android.supportv4.accessibility.AccessibilityManagerSupportActivity.java

/**
 * Updates the content of a TextView with description of the enabled
 * accessibility services.// www .java  2s.co m
 */
private void updateAccessibilityStateView() {
    // The API for getting the enabled accessibility services based on feedback
    // type was added in ICS. Therefore to be backwards compatible we use the
    // APIs in the support library. Note that if the platform API version is lower
    // and the called API is not available an empty list of services is returned.
    List<AccessibilityServiceInfo> enabledServices = AccessibilityManagerCompat
            .getEnabledAccessibilityServiceList(mAccessibilityManager,
                    AccessibilityServiceInfo.FEEDBACK_SPOKEN);
    if (!enabledServices.isEmpty()) {
        StringBuilder builder = new StringBuilder();
        final int enabledServiceCount = enabledServices.size();
        for (int i = 0; i < enabledServiceCount; i++) {
            AccessibilityServiceInfo service = enabledServices.get(i);
            // Some new APIs were added in ICS for getting more information about
            // an accessibility service. Again accessed them via the support library.
            ResolveInfo resolveInfo = AccessibilityServiceInfoCompat.getResolveInfo(service);
            String serviceDescription = getString(R.string.accessibility_manager_enabled_service,
                    resolveInfo.loadLabel(getPackageManager()),
                    AccessibilityServiceInfoCompat.feedbackTypeToString(service.feedbackType),
                    AccessibilityServiceInfoCompat.getDescription(service),
                    AccessibilityServiceInfoCompat.getSettingsActivityName(service));
            builder.append(serviceDescription);
        }
        mAccessibilityStateView.setText(builder);
    } else {
        // Either no services or the platform API version is not high enough.
        mAccessibilityStateView.setText(getString(R.string.accessibility_manager_no_enabled_services));
    }
}

From source file:org.chromium.content.browser.accessibility.AccessibilityInjector.java

/**
 * Checks whether or not touch to explore is enabled on the system.
 *//*from www .  ja va 2s .c o  m*/
public boolean accessibilityIsAvailable() {
    if (!getAccessibilityManager().isEnabled() || mContentViewCore.getContentSettings() == null
            || !mContentViewCore.getContentSettings().getJavaScriptEnabled()) {
        return false;
    }

    try {
        // Check that there is actually a service running that requires injecting this script.
        List<AccessibilityServiceInfo> services = getAccessibilityManager().getEnabledAccessibilityServiceList(
                FEEDBACK_BRAILLE | AccessibilityServiceInfo.FEEDBACK_SPOKEN);
        return services.size() > 0;
    } catch (NullPointerException e) {
        // getEnabledAccessibilityServiceList() can throw an NPE due to a bad
        // AccessibilityService.
        return false;
    }
}

From source file:com.google.android.marvin.mytalkback.TalkBackService.java

/**
 * Registers listeners, sets service info, loads preferences. This should be
 * called from {@link #onServiceConnected} and when TalkBack resumes from a
 * suspended state.//from  w  ww .  j  a va  2s.co m
 */
private void resumeInfrastructure() {
    if (isServiceActive()) {
        LogUtils.log(this, Log.ERROR, "Attempted to resume while not suspended");
        return;
    }

    setServiceState(ServiceState.ACTIVE);
    stopForeground(true);

    final AccessibilityServiceInfo info = new AccessibilityServiceInfo();
    info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_SPOKEN;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_AUDIBLE;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_HAPTIC;
    info.flags |= AccessibilityServiceInfo.DEFAULT;
    info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY;
    info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REPORT_VIEW_IDS;
    info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REQUEST_FILTER_KEY_EVENTS;
    info.notificationTimeout = 0;

    // Ensure the initial touch exploration request mode is correct.
    if (SUPPORTS_TOUCH_PREF && SharedPreferencesUtils.getBooleanPref(mPrefs, getResources(),
            R.string.pref_explore_by_touch_key, R.bool.pref_explore_by_touch_default)) {
        info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REQUEST_TOUCH_EXPLORATION_MODE;
    }

    setServiceInfo(info);

    if (mCallStateMonitor != null) {
        registerReceiver(mCallStateMonitor, mCallStateMonitor.getFilter());
    }

    if (mRingerModeAndScreenMonitor != null) {
        registerReceiver(mRingerModeAndScreenMonitor, mRingerModeAndScreenMonitor.getFilter());
    }

    if (mTextToSpeechManager != null) {
        mTextToSpeechManager.startDiscovery();
    }

    if (mRadialMenuManager != null) {
        registerReceiver(mRadialMenuManager, mRadialMenuManager.getFilter());
    }

    if (mVolumeMonitor != null) {
        registerReceiver(mVolumeMonitor, mVolumeMonitor.getFilter());
    }

    mPrefs.registerOnSharedPreferenceChangeListener(mSharedPreferenceChangeListener);

    // Add the broadcast listener for gestures.
    final IntentFilter filter = new IntentFilter();
    filter.addAction(ACTION_PERFORM_GESTURE);
    registerReceiver(mActiveReceiver, filter, PERMISSION_TALKBACK, null);

    // Enable the proxy activity for long-press search.
    final PackageManager packageManager = getPackageManager();
    final ComponentName shortcutProxy = new ComponentName(this, ShortcutProxyActivity.class);
    packageManager.setComponentEnabledSetting(shortcutProxy, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
            PackageManager.DONT_KILL_APP);

    reloadPreferences();
}

From source file:com.google.android.marvin.talkback.TalkBackService.java

/**
 * Registers listeners, sets service info, loads preferences. This should be
 * called from {@link #onServiceConnected} and when TalkBack resumes from a
 * suspended state./*from  w w  w . j ava  2 s  . com*/
 */
private void resumeInfrastructure() {
    if (isServiceActive()) {
        LogUtils.log(this, Log.ERROR, "Attempted to resume while not suspended");
        return;
    }

    setServiceState(ServiceState.ACTIVE);
    stopForeground(true);

    final AccessibilityServiceInfo info = new AccessibilityServiceInfo();
    info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_SPOKEN;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_AUDIBLE;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_HAPTIC;
    info.flags |= AccessibilityServiceInfo.DEFAULT;
    info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY;
    info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REPORT_VIEW_IDS;
    info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REQUEST_FILTER_KEY_EVENTS;
    info.notificationTimeout = 0;

    // Ensure the initial touch exploration request mode is correct.
    if (SUPPORTS_TOUCH_PREF && SharedPreferencesUtils.getBooleanPref(mPrefs, getResources(),
            R.string.pref_explore_by_touch_key, R.bool.pref_explore_by_touch_default)) {
        info.flags |= AccessibilityServiceInfoCompatUtils.FLAG_REQUEST_TOUCH_EXPLORATION_MODE;
    }

    setServiceInfo(info);

    if (mCallStateMonitor != null) {
        registerReceiver(mCallStateMonitor, mCallStateMonitor.getFilter());
    }

    if (mRingerModeAndScreenMonitor != null) {
        registerReceiver(mRingerModeAndScreenMonitor, mRingerModeAndScreenMonitor.getFilter());
    }

    if (mTextToSpeechManager != null) {
        mTextToSpeechManager.startDiscovery();
    }

    if (mRadialMenuManager != null) {
        registerReceiver(mRadialMenuManager, mRadialMenuManager.getFilter());
    }

    if (mVolumeMonitor != null) {
        registerReceiver(mVolumeMonitor, mVolumeMonitor.getFilter());
    }

    if (mPackageReceiver != null) {
        registerReceiver(mPackageReceiver, mPackageReceiver.getFilter());
        if (mLabelManager != null) {
            mLabelManager.ensureDataConsistency();
        }
    }

    mPrefs.registerOnSharedPreferenceChangeListener(mSharedPreferenceChangeListener);

    // Add the broadcast listener for gestures.
    final IntentFilter filter = new IntentFilter();
    filter.addAction(ACTION_PERFORM_GESTURE_ACTION);
    registerReceiver(mActiveReceiver, filter, PERMISSION_TALKBACK, null);

    // Enable the proxy activity for long-press search.
    final PackageManager packageManager = getPackageManager();
    final ComponentName shortcutProxy = new ComponentName(this, ShortcutProxyActivity.class);
    packageManager.setComponentEnabledSetting(shortcutProxy, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
            PackageManager.DONT_KILL_APP);

    reloadPreferences();
}

From source file:com.google.android.marvin.screenspeak.ScreenSpeakService.java

/**
 * Registers listeners, sets service info, loads preferences. This should be
 * called from {@link #onServiceConnected} and when ScreenSpeak resumes from a
 * suspended state.// ww w  .  ja  va  2s .c o  m
 */
private void resumeInfrastructure() {
    if (isServiceActive()) {
        if (LogUtils.LOG_LEVEL <= Log.ERROR) {
            Log.e(LOGTAG, "Attempted to resume while not suspended");
        }
        return;
    }

    setServiceState(SERVICE_STATE_ACTIVE);
    stopForeground(true);

    final AccessibilityServiceInfo info = new AccessibilityServiceInfo();
    info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_SPOKEN;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_AUDIBLE;
    info.feedbackType |= AccessibilityServiceInfo.FEEDBACK_HAPTIC;
    info.flags |= AccessibilityServiceInfo.DEFAULT;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
        info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY;
        info.flags |= AccessibilityServiceInfo.FLAG_REPORT_VIEW_IDS;
        info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_FILTER_KEY_EVENTS;
    }
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
        info.flags |= AccessibilityServiceInfo.FLAG_RETRIEVE_INTERACTIVE_WINDOWS;
    }
    info.notificationTimeout = 0;

    // Ensure the initial touch exploration request mode is correct.
    if (mSupportsTouchScreen && SharedPreferencesUtils.getBooleanPref(mPrefs, getResources(),
            R.string.pref_explore_by_touch_key, R.bool.pref_explore_by_touch_default)) {
        info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_TOUCH_EXPLORATION_MODE;
    }

    setServiceInfo(info);

    if (mRingerModeAndScreenMonitor != null) {
        registerReceiver(mRingerModeAndScreenMonitor, mRingerModeAndScreenMonitor.getFilter());
        // It could now be confused with the current screen state
        mRingerModeAndScreenMonitor.updateScreenState();
    }

    if (mVolumeMonitor != null) {
        registerReceiver(mVolumeMonitor, mVolumeMonitor.getFilter());
    }

    if (mBatteryMonitor != null) {
        registerReceiver(mBatteryMonitor, mBatteryMonitor.getFilter());
    }

    if (mPackageReceiver != null) {
        registerReceiver(mPackageReceiver, mPackageReceiver.getFilter());
        if (mLabelManager != null) {
            mLabelManager.ensureDataConsistency();
        }
    }

    if (mSideTapManager != null) {
        registerReceiver(mSideTapManager, SideTapManager.getFilter());
    }

    mPrefs.registerOnSharedPreferenceChangeListener(mSharedPreferenceChangeListener);

    // Add the broadcast listener for gestures.
    final IntentFilter filter = new IntentFilter();
    filter.addAction(ACTION_PERFORM_GESTURE_ACTION);
    registerReceiver(mActiveReceiver, filter, PERMISSION_SCREENSPEAK, null);

    // Enable the proxy activity for long-press search.
    final PackageManager packageManager = getPackageManager();
    final ComponentName shortcutProxy = new ComponentName(this, ShortcutProxyActivity.class);
    packageManager.setComponentEnabledSetting(shortcutProxy, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
            PackageManager.DONT_KILL_APP);

    reloadPreferences();

    if (mDimScreenController.isDimmingEnabled()) {
        mDimScreenController.makeScreenDim();
    }
}