android.view.accessibility.AccessibilityManager#sendAccessibilityEvent ( )源码实例Demo

下面列出了android.view.accessibility.AccessibilityManager#sendAccessibilityEvent ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: SuperToasts   文件: AccessibilityUtils.java
/**
 * Try to send an {@link AccessibilityEvent}
 * for a {@link View}.
 *
 * @param view The View that will dispatch the AccessibilityEvent
 * @return true if the AccessibilityEvent was dispatched
 */
@SuppressWarnings("UnusedReturnValue")
public static boolean sendAccessibilityEvent(View view) {
    final AccessibilityManager accessibilityManager = (AccessibilityManager)
            view.getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);

    if (!accessibilityManager.isEnabled()) return false;

    final AccessibilityEvent accessibilityEvent = AccessibilityEvent
            .obtain(AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED);
    accessibilityEvent.setClassName(view.getClass().getName());
    accessibilityEvent.setPackageName(view.getContext().getPackageName());

    view.dispatchPopulateAccessibilityEvent(accessibilityEvent);
    accessibilityManager.sendAccessibilityEvent(accessibilityEvent);

    return true;
}
 
源代码2 项目: libcommon   文件: TalkBackHelper.java
/**
 * 指定したテキストをTalkBackで読み上げる(TalkBackが有効な場合)
 * @param context
 * @param text
 * @throws IllegalStateException
 */
public static void announceText(@NonNull final Context context,
	@Nullable final CharSequence text) throws IllegalStateException {

	if (TextUtils.isEmpty(text) || (context == null)) return;
	final AccessibilityManager manager
		= ContextUtils.requireSystemService(context, AccessibilityManager.class);
	if ((manager != null) && manager.isEnabled()) {
		final AccessibilityEvent event = AccessibilityEvent.obtain();
		if (event != null) {
			event.setEventType(AccessibilityEventCompat.TYPE_ANNOUNCEMENT);
			event.setClassName(TalkBackHelper.class.getName());
			event.setPackageName(context.getPackageName());
			event.getText().add(text);
			manager.sendAccessibilityEvent(event);
		} else {
			throw new IllegalStateException("failed to obtain AccessibilityEvent");
		}
	} else {
		throw new IllegalStateException("AccessibilityManager is not available/or disabled");
	}
}
 
源代码3 项目: libcommon   文件: TalkBackHelper.java
/**
 * 指定したテキストをTalkBackで読み上げる(TalkBackが有効な場合)
 * @param context
 * @param text
 * @throws IllegalStateException
 */
public static void announceText(@NonNull final Context context,
	@Nullable final CharSequence[] text) throws IllegalStateException {

	if ((text == null) || (text.length == 0) || (context == null)) return;
	final AccessibilityManager manager
		= ContextUtils.requireSystemService(context, AccessibilityManager.class);
	if ((manager != null) && manager.isEnabled()) {
		final AccessibilityEvent event = AccessibilityEvent.obtain();
		if (event != null) {
			event.setEventType(AccessibilityEventCompat.TYPE_ANNOUNCEMENT);
			event.setClassName(TalkBackHelper.class.getName());
			event.setPackageName(context.getPackageName());
			for (final CharSequence t: text) {
				event.getText().add(t);
			}
			manager.sendAccessibilityEvent(event);
		} else {
			throw new IllegalStateException("failed to obtain AccessibilityEvent");
		}
	} else {
		throw new IllegalStateException("AccessibilityManager is not available/or disabled");
	}
}
 
源代码4 项目: Telegram-FOSS   文件: NumberPicker.java
private void onScrollStateChange(int scrollState) {
    if (mScrollState == scrollState) {
        return;
    }
    mScrollState = scrollState;
    if (mOnScrollListener != null) {
        mOnScrollListener.onScrollStateChange(this, scrollState);
    }
    if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
        AccessibilityManager am = (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
        if (am.isTouchExplorationEnabled()) {
            String text = (mDisplayedValues == null) ? formatNumber(mValue) : mDisplayedValues[mValue - mMinValue];
            AccessibilityEvent event = AccessibilityEvent.obtain();
            event.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);
            event.getText().add(text);
            am.sendAccessibilityEvent(event);
        }
    }
}
 
源代码5 项目: SublimePicker   文件: AccessibilityUtils.java
public static void makeAnnouncement(View view, CharSequence announcement) {
    if (view == null)
        return;
    if (SUtils.isApi_16_OrHigher()) {
        view.announceForAccessibility(announcement);
    } else {
        // For API 15 and earlier, we need to construct an accessibility event
        Context ctx = view.getContext();
        AccessibilityManager am = (AccessibilityManager) ctx.getSystemService(
                Context.ACCESSIBILITY_SERVICE);
        if (!am.isEnabled()) return;

        AccessibilityEvent event = AccessibilityEvent.obtain(
                AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED);
        AccessibilityRecordCompat arc = AccessibilityEventCompat.asRecord(event);
        arc.setSource(view);
        event.setClassName(view.getClass().getName());
        event.setPackageName(view.getContext().getPackageName());
        event.setEnabled(view.isEnabled());
        event.getText().add(announcement);
        am.sendAccessibilityEvent(event);
    }
}
 
源代码6 项目: Telegram   文件: NumberPicker.java
private void onScrollStateChange(int scrollState) {
    if (mScrollState == scrollState) {
        return;
    }
    mScrollState = scrollState;
    if (mOnScrollListener != null) {
        mOnScrollListener.onScrollStateChange(this, scrollState);
    }
    if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
        AccessibilityManager am = (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
        if (am.isTouchExplorationEnabled()) {
            String text = (mDisplayedValues == null) ? formatNumber(mValue) : mDisplayedValues[mValue - mMinValue];
            AccessibilityEvent event = AccessibilityEvent.obtain();
            event.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);
            event.getText().add(text);
            am.sendAccessibilityEvent(event);
        }
    }
}
 
源代码7 项目: holoaccent   文件: SwitchPreference.java
/** As defined in TwoStatePreference source */
void sendAccessibilityEvent(View view) {
    // Since the view is still not attached we create, populate,
    // and send the event directly since we do not know when it
    // will be attached and posting commands is not as clean.
	AccessibilityManager accessibilityManager =
	        (AccessibilityManager)getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
	if (accessibilityManager == null)
		return;
    if (mSendClickAccessibilityEvent && accessibilityManager.isEnabled()) {
        AccessibilityEvent event = AccessibilityEvent.obtain();
        event.setEventType(AccessibilityEvent.TYPE_VIEW_CLICKED);
        view.onInitializeAccessibilityEvent(event);
        view.dispatchPopulateAccessibilityEvent(event);
        accessibilityManager.sendAccessibilityEvent(event);
    }
    mSendClickAccessibilityEvent = false;
}
 
源代码8 项目: android_9.0.0_r45   文件: Toast.java
private void trySendAccessibilityEvent() {
    AccessibilityManager accessibilityManager =
            AccessibilityManager.getInstance(mView.getContext());
    if (!accessibilityManager.isEnabled()) {
        return;
    }
    // treat toasts as notifications since they are used to
    // announce a transient piece of information to the user
    AccessibilityEvent event = AccessibilityEvent.obtain(
            AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED);
    event.setClassName(getClass().getName());
    event.setPackageName(mView.getContext().getPackageName());
    mView.dispatchPopulateAccessibilityEvent(event);
    accessibilityManager.sendAccessibilityEvent(event);
}
 
源代码9 项目: LaunchEnr   文件: Utilities.java
public static void sendCustomAccessibilityEvent(View target, int type, String text) {
    AccessibilityManager accessibilityManager = (AccessibilityManager)
            target.getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
    if (accessibilityManager.isEnabled()) {
        AccessibilityEvent event = AccessibilityEvent.obtain(type);
        target.onInitializeAccessibilityEvent(event);
        event.getText().add(text);
        accessibilityManager.sendAccessibilityEvent(event);
    }
}
 
源代码10 项目: Trebuchet   文件: DragLayer.java
private void sendTapOutsideFolderAccessibilityEvent(boolean isEditingName) {
    AccessibilityManager accessibilityManager = (AccessibilityManager)
            getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
    if (accessibilityManager.isEnabled()) {
        int stringId = isEditingName ? R.string.folder_tap_to_rename : R.string.folder_tap_to_close;
        AccessibilityEvent event = AccessibilityEvent.obtain(
                AccessibilityEvent.TYPE_VIEW_FOCUSED);
        onInitializeAccessibilityEvent(event);
        event.getText().add(getContext().getString(stringId));
        accessibilityManager.sendAccessibilityEvent(event);
    }
}
 
源代码11 项目: TurboLauncher   文件: Folder.java
private void sendCustomAccessibilityEvent(int type, String text) {
    AccessibilityManager accessibilityManager = (AccessibilityManager)
            getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
    if (accessibilityManager.isEnabled()) {
        AccessibilityEvent event = AccessibilityEvent.obtain(type);
        onInitializeAccessibilityEvent(event);
        event.getText().add(text);
        accessibilityManager.sendAccessibilityEvent(event);
    }
}
 
源代码12 项目: TurboLauncher   文件: DragLayer.java
private void sendTapOutsideFolderAccessibilityEvent(boolean isEditingName) {
    AccessibilityManager accessibilityManager = (AccessibilityManager)
            getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
    if (accessibilityManager.isEnabled()) {
        int stringId = isEditingName ? R.string.folder_tap_to_rename : R.string.folder_tap_to_close;
        AccessibilityEvent event = AccessibilityEvent.obtain(
                AccessibilityEvent.TYPE_VIEW_FOCUSED);
        onInitializeAccessibilityEvent(event);
        event.getText().add(getContext().getString(stringId));
        accessibilityManager.sendAccessibilityEvent(event);
    }
}
 
源代码13 项目: talkback   文件: DimScreenControllerApp.java
private void announceScreenDimChanged(int announcementTextResId) {
  AccessibilityManager manager =
      (AccessibilityManager) service.getSystemService(Context.ACCESSIBILITY_SERVICE);
  if (manager.isEnabled()) {
    AccessibilityEvent event = AccessibilityEvent.obtain();
    event.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);
    event.setClassName(getClass().getName());
    event.setPackageName(service.getPackageName());
    event.getText().add(service.getString(announcementTextResId));
    manager.sendAccessibilityEvent(event);
  }
}
 
/** Utility method for announcing text via accessibility event. */
public static void announceText(String text, Context context) {
  AccessibilityManager accessibilityManager =
      (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE);
  if (accessibilityManager.isEnabled()) {
    AccessibilityEvent event = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_ANNOUNCEMENT);
    event.setContentDescription(text);
    accessibilityManager.sendAccessibilityEvent(event);
  }
}
 
源代码15 项目: SuntimesWidget   文件: SuntimesUtils.java
/**
 * @param view the View to trigger the accessibility event
 * @param msg text that will be read aloud (if accessibility enabled)
 */
public static void announceForAccessibility(View view, String msg)
{
    if (view != null && msg != null)
    {
        if (Build.VERSION.SDK_INT >= 16)
        {
            view.announceForAccessibility(msg);

        } else {
            Context context = view.getContext();
            if (context != null)
            {
                AccessibilityManager accesibility = (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE);
                if (accesibility != null && accesibility.isEnabled())
                {
                    AccessibilityEvent event = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_VIEW_FOCUSED);
                    event.getText().add(msg);
                    event.setEnabled(view.isEnabled());
                    event.setClassName(view.getClass().getName());
                    event.setPackageName(context.getPackageName());

                    ViewParent parent = view.getParent();
                    if (Build.VERSION.SDK_INT >= 14 && parent != null)
                    {
                        parent.requestSendAccessibilityEvent(view, event);

                    } else {
                        accesibility.sendAccessibilityEvent(event);
                    }
                }
            }
        }
    }
}
 
源代码16 项目: LB-Launcher   文件: Folder.java
private void sendCustomAccessibilityEvent(int type, String text) {
    AccessibilityManager accessibilityManager = (AccessibilityManager)
            getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
    if (accessibilityManager.isEnabled()) {
        AccessibilityEvent event = AccessibilityEvent.obtain(type);
        onInitializeAccessibilityEvent(event);
        event.getText().add(text);
        accessibilityManager.sendAccessibilityEvent(event);
    }
}
 
源代码17 项目: LB-Launcher   文件: DragLayer.java
private void sendTapOutsideFolderAccessibilityEvent(boolean isEditingName) {
    AccessibilityManager accessibilityManager = (AccessibilityManager)
            getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
    if (accessibilityManager.isEnabled()) {
        int stringId = isEditingName ? R.string.folder_tap_to_rename : R.string.folder_tap_to_close;
        AccessibilityEvent event = AccessibilityEvent.obtain(
                AccessibilityEvent.TYPE_VIEW_FOCUSED);
        onInitializeAccessibilityEvent(event);
        event.getText().add(getContext().getString(stringId));
        accessibilityManager.sendAccessibilityEvent(event);
    }
}
 
源代码18 项目: adt-leanback-support   文件: ViewParentCompat.java
@Override
public boolean requestSendAccessibilityEvent(
        ViewParent parent, View child, AccessibilityEvent event) {
    // Emulate what ViewRootImpl does in ICS and above.
    if (child == null) {
        return false;
    }
    final AccessibilityManager manager = (AccessibilityManager) child.getContext()
            .getSystemService(Context.ACCESSIBILITY_SERVICE);
    manager.sendAccessibilityEvent(event);
    return true;
}
 
源代码19 项目: android-recipes-app   文件: ViewParentCompat.java
@Override
public boolean requestSendAccessibilityEvent(
        ViewParent parent, View child, AccessibilityEvent event) {
    // Emulate what ViewRootImpl does in ICS and above.
    if (child == null) {
        return false;
    }
    final AccessibilityManager manager = (AccessibilityManager) child.getContext()
            .getSystemService(Context.ACCESSIBILITY_SERVICE);
    manager.sendAccessibilityEvent(event);
    return true;
}
 
源代码20 项目: V.FlyoutTest   文件: ViewParentCompat.java
@Override
public boolean requestSendAccessibilityEvent(
        ViewParent parent, View child, AccessibilityEvent event) {
    // Emulate what ViewRootImpl does in ICS and above.
    if (child == null) {
        return false;
    }
    final AccessibilityManager manager = (AccessibilityManager) child.getContext()
            .getSystemService(Context.ACCESSIBILITY_SERVICE);
    manager.sendAccessibilityEvent(event);
    return true;
}