getAccctibilityButtonController Android可访问性服务



我一直在研究Android O中可访问性的新方法。我访问了这种称为GetAccosconibilityButtonController的新方法,我不确定它的作用和预期的使用。我知道在Android O中有一个可用于可访问性服务的导航按钮。此可访问性按钮是否仅启动可访问性服务,还是在服务中可以使用其他功能,例如执行特定任务?我很好奇可访问性和可访问性的方法。谢谢您的宝贵时间。

它几乎可以做任何您想要的事情。从Android可访问性文档中,该按钮可允许您注册具有关闭方法的回调。如果您启用按钮并提供所述回调,则可以在该回调的上下文中执行您想要的任何内容。

编辑:Android文档已更新,因此不再需要以下内容。

请注意,如果您读取DOC,当前有一个示例,该示例在OnCreate((中都可以调用getAccosconibilitybuttoncontroller((。这是不正确的,因为在调用onservIconeconecteconeconeconeconeconeconeconeconecon中。我已经修改了下面的示例以显示应该有效的东西。

private AccessibilityButtonController mAccessibilityButtonController;
private AccessibilityButtonController
        .AccessibilityButtonCallback mAccessibilityButtonCallback;
private boolean mIsAccessibilityButtonAvailable;
@Override
protected void onServiceConnected() {
    mAccessibilityButtonController = getAccessibilityButtonController();
    mIsAccessibilityButtonAvailable =
            mAccessibilityButtonController.isAccessibilityButtonAvailable();
    if (!mIsAccessibilityButtonAvailable) {
        return;
    }
    AccessibilityServiceInfo serviceInfo = getServiceInfo();
    serviceInfo.flags
            |= AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON;
    setServiceInfo(serviceInfo);
    mAccessibilityButtonCallback =
        new AccessibilityButtonController.AccessibilityButtonCallback() {
            @Override
            public void onClicked(AccessibilityButtonController controller) {
                Log.d("MY_APP_TAG", "Accessibility button pressed!");
                // Add custom logic for a service to react to the
                // accessibility button being pressed.
            }
            @Override
            public void onAvailabilityChanged(
              AccessibilityButtonController controller, boolean available) {
                if (controller.equals(mAccessibilityButtonController)) {
                    mIsAccessibilityButtonAvailable = available;
                }
            }
        };
    if (mAccessibilityButtonCallback != null) {
        mAccessibilityButtonController.registerAccessibilityButtonCallback(
                mAccessibilityButtonCallback, null);
    }
}

最新更新