首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以编程方式检测用户何时打开/关闭android中的对讲机

如何以编程方式检测用户何时打开/关闭android中的对讲机
EN

Stack Overflow用户
提问于 2019-01-12 13:18:07
回答 1查看 2.4K关注 0票数 3

我正在尝试基于可访问性选项(即对讲机打开/关闭)更新UI。当用户打开对讲机时,我需要显示一些帮助文本,否则助手文本应该是隐藏的。

因为我们也有快捷键(在像素设备中,长时间按上下音量键)来启用/禁用对讲机。当我在XYZ活动时,是否有任何方法检测是否启用/禁用了对讲机。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-12 13:38:18

您可以使用AccessibilityManager.AccessibilityStateChangeListener来接收是否收听访问服务中的更改。

不幸的是,如果启用了可访问性服务的任何,则这将是正确的。

代码语言:javascript
运行
复制
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。这将返回所有活动可访问性服务的列表。但这将不是一个侦听器,这意味着如果这种情况发生变化,您将不会得到回调。黑客需要定期调用此函数,以检查是否有任何变化。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54159966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档