我正在尝试基于可访问性选项(即对讲机打开/关闭)更新UI。当用户打开对讲机时,我需要显示一些帮助文本,否则助手文本应该是隐藏的。
因为我们也有快捷键(在像素设备中,长时间按上下音量键)来启用/禁用对讲机。当我在XYZ活动时,是否有任何方法检测是否启用/禁用了对讲机。
发布于 2019-01-12 13:38:18
您可以使用AccessibilityManager.AccessibilityStateChangeListener来接收是否收听访问服务中的更改。
不幸的是,如果启用了可访问性服务的任何,则这将是正确的。
AccessibilityManager accessibilityManager= (AccessibilityManager) getSystemService(Context.ACCESSIBILITY_SERVICE);
// Put this in onCreate
accessibilityManager.addAccessibilityStateChangeListener(new AccessibilityManager.AccessibilityStateChangeListener() {
@Override
public void onAccessibilityStateChanged(boolean b) {
accessibilityChanged(b);
}
});
accessibiltyChanged(accessibiltyManager.isEnabled());
void accessibiltyChanged (Boolean enabled) {
// Do your stuff
}
您也可以尝试使用getEnabledAccessibilityServiceList。这将返回所有活动可访问性服务的列表。但这将不是一个侦听器,这意味着如果这种情况发生变化,您将不会得到回调。黑客需要定期调用此函数,以检查是否有任何变化。
https://stackoverflow.com/questions/54159966
复制相似问题