类android.support.v4.view.accessibility.AccessibilityManagerCompat源码实例Demo

下面列出了怎么用android.support.v4.view.accessibility.AccessibilityManagerCompat的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: letv   文件: ExploreByTouchHelper.java
public boolean dispatchHoverEvent(MotionEvent event) {
    boolean z = true;
    if (!this.mManager.isEnabled() || !AccessibilityManagerCompat.isTouchExplorationEnabled(this.mManager)) {
        return false;
    }
    switch (event.getAction()) {
        case 7:
        case 9:
            int virtualViewId = getVirtualViewAt(event.getX(), event.getY());
            updateHoveredVirtualView(virtualViewId);
            if (virtualViewId == Integer.MIN_VALUE) {
                z = false;
            }
            return z;
        case 10:
            if (this.mFocusedVirtualViewId == Integer.MIN_VALUE) {
                return false;
            }
            updateHoveredVirtualView(Integer.MIN_VALUE);
            return true;
        default:
            return false;
    }
}
 
源代码2 项目: Float-Bar   文件: MainActivity.java
@Override
protected void onResume() {
	super.onResume();
	AccessibilityManager manager = (AccessibilityManager) getSystemService(ACCESSIBILITY_SERVICE);
	List<AccessibilityServiceInfo> list = AccessibilityManagerCompat.getEnabledAccessibilityServiceList(manager,
			AccessibilityServiceInfo.FEEDBACK_ALL_MASK);
	System.out.println("list.size = " + list.size());
	for (int i = 0; i < list.size(); i++) {
		System.out.println("已经可用的服务列表 = " + list.get(i).getId());
		if ("com.kale.floatbar/.service.FloatService".equals(list.get(i).getId())) {
			System.out.println("已启用");
			isEnabled = true;
			break;
		}
	}
	if (!isEnabled) {
		showDialog(this, "激活悬浮窗", "您还没有激活悬浮窗。" + "在设置中:系统 → 辅助功能 → 服务 中激活" + getResources().getString(R.string.app_name)
				+ "后,便可安全稳定的使用悬浮窗啦~", "去激活", "取消");
	}
}
 
/**
 * Dispatches hover {@link MotionEvent}s to the virtual view hierarchy when
 * the Explore by Touch feature is enabled.
 * <p>
 * This method should be called by overriding
 * {@link View#dispatchHoverEvent}:
 *
 * <pre>&#64;Override
 * public boolean dispatchHoverEvent(MotionEvent event) {
 *   if (mHelper.dispatchHoverEvent(this, event) {
 *     return true;
 *   }
 *   return super.dispatchHoverEvent(event);
 * }
 * </pre>
 *
 * @param event The hover event to dispatch to the virtual view hierarchy.
 * @return Whether the hover event was handled.
 */
public boolean dispatchHoverEvent(MotionEvent event) {
    if (!mManager.isEnabled()
            || !AccessibilityManagerCompat.isTouchExplorationEnabled(mManager)) {
        return false;
    }

    switch (event.getAction()) {
        case MotionEventCompat.ACTION_HOVER_MOVE:
        case MotionEventCompat.ACTION_HOVER_ENTER:
            final int virtualViewId = getVirtualViewAt(event.getX(), event.getY());
            updateHoveredVirtualView(virtualViewId);
            return (virtualViewId != INVALID_ID);
        case MotionEventCompat.ACTION_HOVER_EXIT:
            if (mFocusedVirtualViewId != INVALID_ID) {
                updateHoveredVirtualView(INVALID_ID);
                return true;
            }
            return false;
        default:
            return false;
    }
}
 
/**
 * Attempts to give accessibility focus to a virtual view.
 * <p>
 * A virtual view will not actually take focus if
 * {@link AccessibilityManager#isEnabled()} returns false,
 * {@link AccessibilityManager#isTouchExplorationEnabled()} returns false,
 * or the view already has accessibility focus.
 *
 * @param virtualViewId The id of the virtual view on which to place
 *            accessibility focus.
 * @return Whether this virtual view actually took accessibility focus.
 */
private boolean requestAccessibilityFocus(int virtualViewId) {
    if (!mManager.isEnabled()
            || !AccessibilityManagerCompat.isTouchExplorationEnabled(mManager)) {
        return false;
    }
    // TODO: Check virtual view visibility.
    if (!isAccessibilityFocused(virtualViewId)) {
        mFocusedVirtualViewId = virtualViewId;
        // TODO: Only invalidate virtual view bounds.
        mView.invalidate();
        sendEventForVirtualView(virtualViewId,
                AccessibilityEventCompat.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
        return true;
    }
    return false;
}
 
/**
 * Dispatches hover {@link MotionEvent}s to the virtual view hierarchy when
 * the Explore by Touch feature is enabled.
 * <p>
 * This method should be called by overriding
 * {@link View#dispatchHoverEvent}:
 *
 * <pre>&#64;Override
 * public boolean dispatchHoverEvent(MotionEvent event) {
 *   if (mHelper.dispatchHoverEvent(this, event) {
 *     return true;
 *   }
 *   return super.dispatchHoverEvent(event);
 * }
 * </pre>
 *
 * @param event The hover event to dispatch to the virtual view hierarchy.
 * @return Whether the hover event was handled.
 */
public boolean dispatchHoverEvent(MotionEvent event) {
    if (!mManager.isEnabled()
            || !AccessibilityManagerCompat.isTouchExplorationEnabled(mManager)) {
        return false;
    }

    switch (event.getAction()) {
        case MotionEventCompat.ACTION_HOVER_MOVE:
        case MotionEventCompat.ACTION_HOVER_ENTER:
            final int virtualViewId = getVirtualViewAt(event.getX(), event.getY());
            updateHoveredVirtualView(virtualViewId);
            return (virtualViewId != INVALID_ID);
        case MotionEventCompat.ACTION_HOVER_EXIT:
            if (mFocusedVirtualViewId != INVALID_ID) {
                updateHoveredVirtualView(INVALID_ID);
                return true;
            }
            return false;
        default:
            return false;
    }
}
 
/**
 * Attempts to give accessibility focus to a virtual view.
 * <p>
 * A virtual view will not actually take focus if
 * {@link AccessibilityManager#isEnabled()} returns false,
 * {@link AccessibilityManager#isTouchExplorationEnabled()} returns false,
 * or the view already has accessibility focus.
 *
 * @param virtualViewId The id of the virtual view on which to place
 *            accessibility focus.
 * @return Whether this virtual view actually took accessibility focus.
 */
private boolean requestAccessibilityFocus(int virtualViewId) {
    if (!mManager.isEnabled()
            || !AccessibilityManagerCompat.isTouchExplorationEnabled(mManager)) {
        return false;
    }
    // TODO: Check virtual view visibility.
    if (!isAccessibilityFocused(virtualViewId)) {
        mFocusedVirtualViewId = virtualViewId;
        // TODO: Only invalidate virtual view bounds.
        mView.invalidate();
        sendEventForVirtualView(virtualViewId,
                AccessibilityEventCompat.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
        return true;
    }
    return false;
}
 
源代码7 项目: V.FlyoutTest   文件: ExploreByTouchHelper.java
/**
 * Dispatches hover {@link MotionEvent}s to the virtual view hierarchy when
 * the Explore by Touch feature is enabled.
 * <p>
 * This method should be called by overriding
 * {@link View#dispatchHoverEvent}:
 *
 * <pre>&#64;Override
 * public boolean dispatchHoverEvent(MotionEvent event) {
 *   if (mHelper.dispatchHoverEvent(this, event) {
 *     return true;
 *   }
 *   return super.dispatchHoverEvent(event);
 * }
 * </pre>
 *
 * @param event The hover event to dispatch to the virtual view hierarchy.
 * @return Whether the hover event was handled.
 */
public boolean dispatchHoverEvent(MotionEvent event) {
    if (!mManager.isEnabled()
            || !AccessibilityManagerCompat.isTouchExplorationEnabled(mManager)) {
        return false;
    }

    switch (event.getAction()) {
        case MotionEventCompat.ACTION_HOVER_MOVE:
        case MotionEventCompat.ACTION_HOVER_ENTER:
            final int virtualViewId = getVirtualViewAt(event.getX(), event.getY());
            updateHoveredVirtualView(virtualViewId);
            return (virtualViewId != INVALID_ID);
        case MotionEventCompat.ACTION_HOVER_EXIT:
            if (mFocusedVirtualViewId != INVALID_ID) {
                updateHoveredVirtualView(INVALID_ID);
                return true;
            }
            return false;
        default:
            return false;
    }
}
 
源代码8 项目: V.FlyoutTest   文件: ExploreByTouchHelper.java
/**
 * Attempts to give accessibility focus to a virtual view.
 * <p>
 * A virtual view will not actually take focus if
 * {@link AccessibilityManager#isEnabled()} returns false,
 * {@link AccessibilityManager#isTouchExplorationEnabled()} returns false,
 * or the view already has accessibility focus.
 *
 * @param virtualViewId The id of the virtual view on which to place
 *            accessibility focus.
 * @return Whether this virtual view actually took accessibility focus.
 */
private boolean requestAccessibilityFocus(int virtualViewId) {
    if (!mManager.isEnabled()
            || !AccessibilityManagerCompat.isTouchExplorationEnabled(mManager)) {
        return false;
    }
    // TODO: Check virtual view visibility.
    if (!isAccessibilityFocused(virtualViewId)) {
        mFocusedVirtualViewId = virtualViewId;
        // TODO: Only invalidate virtual view bounds.
        mView.invalidate();
        sendEventForVirtualView(virtualViewId,
                AccessibilityEventCompat.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
        return true;
    }
    return false;
}
 
/**
 * Registers an AccessibilityStateChangeListener that show a Toast
 * when the global accessibility state on the device changes.
 */
private void registerAccessibilityStateChangeListener() {
    // The AccessibilityStateChange listener APIs were 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 no listener
    // is added and you will not receive a call of onAccessibilityStateChanged.
    AccessibilityManagerCompat.addAccessibilityStateChangeListener(mAccessibilityManager,
            new AccessibilityStateChangeListenerCompat() {
        @Override
        public void onAccessibilityStateChanged(boolean enabled) {
            Toast.makeText(AccessibilityManagerSupportActivity.this,
                    getString(R.string.accessibility_manager_accessibility_state, enabled),
                    Toast.LENGTH_SHORT).show();
        }
    });
}
 
源代码10 项目: Float-Bar   文件: MainActivity.java
@Override
protected void onResume() {
	super.onResume();
	AccessibilityManager manager = (AccessibilityManager) getSystemService(ACCESSIBILITY_SERVICE);
	List<AccessibilityServiceInfo> list = AccessibilityManagerCompat.getEnabledAccessibilityServiceList(manager,
			AccessibilityServiceInfo.FEEDBACK_ALL_MASK);
	System.out.println("list.size = " + list.size());
	for (int i = 0; i < list.size(); i++) {
		System.out.println("已经可用的服务列表 = " + list.get(i).getId());
		if ("com.kale.floatbar/.service.FloatService".equals(list.get(i).getId())) {
			System.out.println("已启用");
			isEnabled = true;
			break;
		}
	}
	if (!isEnabled) {
		showDialog(this, "激活悬浮窗", "您还没有激活悬浮窗。" + "在设置中:系统 → 辅助功能 → 服务 中激活" + getResources().getString(R.string.app_name)
				+ "后,便可安全稳定的使用悬浮窗啦~", "去激活", "取消");
	}
}
 
源代码11 项目: guideshow   文件: ExploreByTouchHelper.java
/**
 * Dispatches hover {@link MotionEvent}s to the virtual view hierarchy when
 * the Explore by Touch feature is enabled.
 * <p>
 * This method should be called by overriding
 * {@link View#dispatchHoverEvent}:
 *
 * <pre>&#64;Override
 * public boolean dispatchHoverEvent(MotionEvent event) {
 *   if (mHelper.dispatchHoverEvent(this, event) {
 *     return true;
 *   }
 *   return super.dispatchHoverEvent(event);
 * }
 * </pre>
 *
 * @param event The hover event to dispatch to the virtual view hierarchy.
 * @return Whether the hover event was handled.
 */
public boolean dispatchHoverEvent(MotionEvent event) {
    if (!mManager.isEnabled()
            || !AccessibilityManagerCompat.isTouchExplorationEnabled(mManager)) {
        return false;
    }

    switch (event.getAction()) {
        case MotionEventCompat.ACTION_HOVER_MOVE:
        case MotionEventCompat.ACTION_HOVER_ENTER:
            final int virtualViewId = getVirtualViewAt(event.getX(), event.getY());
            updateHoveredVirtualView(virtualViewId);
            return (virtualViewId != INVALID_ID);
        case MotionEventCompat.ACTION_HOVER_EXIT:
            if (mFocusedVirtualViewId != INVALID_ID) {
                updateHoveredVirtualView(INVALID_ID);
                return true;
            }
            return false;
        default:
            return false;
    }
}
 
源代码12 项目: guideshow   文件: ExploreByTouchHelper.java
/**
 * Attempts to give accessibility focus to a virtual view.
 * <p>
 * A virtual view will not actually take focus if
 * {@link AccessibilityManager#isEnabled()} returns false,
 * {@link AccessibilityManager#isTouchExplorationEnabled()} returns false,
 * or the view already has accessibility focus.
 *
 * @param virtualViewId The id of the virtual view on which to place
 *            accessibility focus.
 * @return Whether this virtual view actually took accessibility focus.
 */
private boolean requestAccessibilityFocus(int virtualViewId) {
    if (!mManager.isEnabled()
            || !AccessibilityManagerCompat.isTouchExplorationEnabled(mManager)) {
        return false;
    }
    // TODO: Check virtual view visibility.
    if (!isAccessibilityFocused(virtualViewId)) {
        mFocusedVirtualViewId = virtualViewId;
        // TODO: Only invalidate virtual view bounds.
        mView.invalidate();
        sendEventForVirtualView(virtualViewId,
                AccessibilityEventCompat.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
        return true;
    }
    return false;
}
 
源代码13 项目: letv   文件: ExploreByTouchHelper.java
private boolean requestAccessibilityFocus(int virtualViewId) {
    if (!this.mManager.isEnabled() || !AccessibilityManagerCompat.isTouchExplorationEnabled(this.mManager) || isAccessibilityFocused(virtualViewId)) {
        return false;
    }
    if (this.mFocusedVirtualViewId != Integer.MIN_VALUE) {
        sendEventForVirtualView(this.mFocusedVirtualViewId, 65536);
    }
    this.mFocusedVirtualViewId = virtualViewId;
    this.mView.invalidate();
    sendEventForVirtualView(virtualViewId, 32768);
    return true;
}
 
源代码14 项目: MiBandDecompiled   文件: ExploreByTouchHelper.java
private boolean f(int l)
{
    while (!g.isEnabled() || !AccessibilityManagerCompat.isTouchExplorationEnabled(g) || e(l)) 
    {
        return false;
    }
    j = l;
    h.invalidate();
    sendEventForVirtualView(l, 32768);
    return true;
}
 
源代码15 项目: MiBandDecompiled   文件: ExploreByTouchHelper.java
public boolean dispatchHoverEvent(MotionEvent motionevent)
{
    boolean flag = true;
    if (g.isEnabled() && AccessibilityManagerCompat.isTouchExplorationEnabled(g))
    {
        switch (motionevent.getAction())
        {
        case 8: // '\b'
        default:
            return false;

        case 7: // '\007'
        case 9: // '\t'
            int l = getVirtualViewAt(motionevent.getX(), motionevent.getY());
            a(l);
            if (l == 0x80000000)
            {
                flag = false;
            }
            return flag;

        case 10: // '\n'
            break;
        }
        if (j != 0x80000000)
        {
            a(0x80000000);
            return flag;
        }
    }
    return false;
}
 
/**
 * Updates the content of a TextView with description of the enabled
 * accessibility services.
 */
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));
    }
}
 
 类所在包
 类方法
 同包方法