我正在尝试基于辅助功能选项(即打开/关闭对讲)更新UI。当用户打开对讲时,我需要显示一些帮助者文本,否则该帮助者文本应被隐藏。
我们还有快捷方式(在Pixel设备中,长按上下音量键)可启用/禁用对讲功能。当我进行XYZ活动时,是否有任何方法可以检测对讲功能是否已启用。
答案 0 :(得分:0)
您可以使用AccessibilityManager.AccessibilityStateChangeListener接收是否收听Accessibilty Service中的更改。
不幸的是,如果启用了 ANY 的辅助功能服务,这将是正确的。
AccessibilityManager accessibiltyManager= (AccessibilityManager) getSystemService(Context.ACCESSIBILITY_SERVICE);
// Put this in onCreate
accessibiltyManager.addAccessibilityStateChangeListener(new AccessibilityManager.AccessibilityStateChangeListener() {
@Override
public void onAccessibilityStateChanged(boolean b) {
accessibiltyChanged(b);
}
});
accessibiltyChanged(accessibiltyManager.isEnabled());
void accessibiltyChanged (Boolean enabled) {
// Do your stuff
}
您也可以尝试使用getEnabledAccessibilityServiceList。这将返回所有活动无障碍服务的列表。但这不会成为收听者,这意味着如果发生这种情况,您将不会得到回调。黑客可能会定期调用此函数,以检查是否有任何更改。