在启用Android对讲服务的情况下使用SeekBar和OnSeekBarChangeListener

在启用Android对讲服务的情况下使用SeekBar和OnSeekBarChangeListener,android,accessibility,seekbar,talkback,Android,Accessibility,Seekbar,Talkback,我需要认识到,用户已经使用onStopTrackingTouch回调方法从OnSeekBarChangeListener界面结束了seekbar进度更改 无论何时在正常触摸模式下触发seekbar进度更改操作,这都可以正常工作,但是当启用对讲服务时,我无法再检测到此事件(回调未触发)。这是一种预期(因为启用辅助功能服务后的进度变化不涉及任何触摸屏操作),因为文档说明如下: /** *用户已完成触摸手势的通知。客户可能希望使用此选项 *重新启用seekbar前进。 *@param seekBar触

我需要认识到,用户已经使用
onStopTrackingTouch
回调方法从
OnSeekBarChangeListener
界面结束了seekbar进度更改

无论何时在正常触摸模式下触发seekbar进度更改操作,这都可以正常工作,但是当启用对讲服务时,我无法再检测到此事件(回调未触发)。这是一种预期(因为启用辅助功能服务后的进度变化不涉及任何触摸屏操作),因为文档说明如下:

/**
*用户已完成触摸手势的通知。客户可能希望使用此选项
*重新启用seekbar前进。
*@param seekBar触摸手势开始的seekBar
*/
顶部跟踪触控无效(SeekBar SeekBar);
在这种情况下,我恐怕需要将此方法中的逻辑提取到其他位置,并从
onProgressChanged
方法有条件地调用它(取决于启用的对讲服务),例如

if(accessibilityManager.isEnabled&&accessibilityManager.isTouchExplorationEnabled){
fireTheAction()
}
我不喜欢每次都使用这个if语句。
有没有办法强制对讲服务调用此方法?

不幸的是,没有记录其他选项,因此接下来的方法是手动检查用户是否调用了该操作以及是否启用了辅助功能服务

public void onProgressChanged(SeekBar b, int progress, boolean fromUser) {
    if (!fromUser) return;
    // some logic

    if (accessibilityManager.isEnabled && accessibilityManager.isTouchExplorationEnabled) {
        fireTheAction();
    }
}

不幸的是,没有记录其他选项,因此接下来的方法是手动检查用户是否调用了该操作,以及是否启用了可访问性服务

public void onProgressChanged(SeekBar b, int progress, boolean fromUser) {
    if (!fromUser) return;
    // some logic

    if (accessibilityManager.isEnabled && accessibilityManager.isTouchExplorationEnabled) {
        fireTheAction();
    }
}