Android中如何判断TalkBack功能是否开启
自研功能在适配TalkBack时遇到一些问题,特殊场景下需要判断此功能是否开启再做对应处理。判断代码如下,亲测可用。
public static boolean getTalkBackState(Context context) {String TalkBackpackageName = "com.google.android.marvin.talkback";String TalkBackServiceName = "com.google.android.marvin.talkback.TalkBackService";final boolean accessibilityEnabled = Settings.Secure.getInt(context.getContentResolver(),Settings.Secure.ACCESSIBILITY_ENABLED, 0) == 1;Set<ComponentName> enabledServices = getEnabledServicesFromSettings(context, UserHandle.myUserId());boolean talkBackState = accessibilityEnabled && enabledServices.contains(new ComponentName(TalkBackpackageName, TalkBackServiceName));return talkBackState;}public static Set<ComponentName> getEnabledServicesFromSettings(Context context, int userId) {final String enabledServicesSetting = Settings.Secure.getStringForUser(context.getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,userId);if (enabledServicesSetting == null) {return Collections.emptySet();}final Set<ComponentName> enabledServices = new HashSet<>();final TextUtils.SimpleStringSplitter colonSplitter = new TextUtils.SimpleStringSplitter(':');colonSplitter.setString(enabledServicesSetting);while (colonSplitter.hasNext()) {final String componentNameString = colonSplitter.next();final ComponentName enabledService = ComponentName.unflattenFromString(componentNameString);if (enabledService != null) {enabledServices.add(enabledService);}}return enabledServices;}
在需要判断的地方直接调用 getTalkBackState 方法即可。可以记录下状态,尽量避免多次判断耗时。
Android中如何判断TalkBack功能是否开启相关推荐
- android 碎片技术,【移动开发】Android中强大的适配功能----Fragment(碎片)总结
[移动开发]Android中强大的适配功能----Fragment(碎片)总结 发布时间:2020-06-27 00:32:58 来源:51CTO 阅读:10233 作者:zhf651555765 作 ...
- android java 8_四个库,让你在 Android 中启用 Java 8 功能
Java 8 的推出引入很多革命性变化,加入了函数式编程的特征,使基于行为的编程成为可能,同时简化了各种设计模式的实现方式,是 Java 有史以来最重要的更新. 自 Android N 之后,由于 J ...
- Java乔晓松-android中调用系统拍照功能并显示拍照的图片
android中调用系统拍照功能并显示拍照的图片 如果你是拍照完,利用onActivityResult获取data数据,把data数据转换成Bitmap数据,这样获取到的图片,是拍照的照片的缩略图 代 ...
- Android中实现一键分享功能
在Android中开发中,我们会经常遇到使用一键分享的功能,今天我以使用第三方平台ShareSDK来实现一键分享向大家分享下具体的流程. 下面,我就以步骤顺序依次展示在自己的Android项目中如何实 ...
- Android中复制及粘贴功能
工作中用到了Android的Copy and Paste功能,上官网http://developer.android.com/guide/topics/text/copy-paste.html#Cli ...
- Android中保存图片到本地功能实现
文章转载自http://blog.csdn.net/ccpat/article/details/45314175 感谢原作者~ 本文描述将一个Bitmap对象保存为一个图片文件的主要步骤.保存的图片 ...
- android中最新webview的功能,Android WebView实现截长图功能
本文实例为大家分享了Android实现截长图功能的具体代码,供大家参考,具体内容如下 先看看手机自带的长截屏功能: 机型: vivo x9 plus 大胆推测实现逻辑: 1:需要一个可以滚动的Vie ...
- 【移动开发】Android中强大的适配功能----Fragment(碎片)总结
作为大多数刚接触Android应用开发的人来说,在一个强大的Activity类中,就可以完成丰富多彩的UI工作,但是杂乱的屏幕分辨率,使得本来好不容易写好的UI,变得不堪入目...该怎么办那? 查阅了 ...
- android中高德地图定位功能并且获取定位的城市
一.概述 今天再一次用到了地图定位功能和地图显示功能,以前一直用的是高德地图定位,这次还是用高德,记录一下以便以后再做时方便一些.因为业务需要的功能不是很全,可以参考https://www.2cto. ...
最新文章
- 北美欧洲顶级大咖齐聚,在这里读懂 AIoT 未来!
- 怎么主动发起话题_谈恋爱怎样找话题聊天?
- C语言实例第5期:在控制台打印100-200之间的所有素数
- MATLAB中FFT的使用方法
- 蓝牙模块怎么指定查询另一个蓝牙模块_拆解报告:亚马逊10.or Buds真无线蓝牙耳机...
- switch语句嵌套if_C++核心准则ES.70:进行选择时,switch语句比if语句好
- 将AX寄存器中的16位数据分成4组(从高到低),每组4位,然后把这4组数作为数当中的低4位分别放在AL,BL,CL,DL中。
- 女车主车顶控诉“特斯拉刹车失灵”,结果被大汉抬走!车展变维权现场...
- Fenzo:来自Netflix基于Java语言的Mesos调度器
- Qt QMenu圆角阴影超详细 干净圆角 屏蔽原生阴影 绘制阴影
- 吝啬SAT问题是NP完全问题的证明
- paddlepaddle波士顿房价预测
- git上传详细步骤和提交代码的各种报错解决方式.
- Xmanager中的Xbrowser怎么使用?
- Intellij IDear关闭页面浏览器显示图标
- Excel2013打印时怎么固定表头及表尾让打印后的每页都可以看得到
- 一封超级牛的数据库程序员的情书表白
- 新概念1、2英语学习计划
- sFlow监控技术及Collector工具概述
- 【2002】学生姓名按字典排序
热门文章
- linux下rename命令用法详解(重命名文件)
- Android 解决系统字体变大导致WebView页面显示错乱问题
- Ardunio 电子秤 重力传感器HX711笔记
- java毕业设计汽配管理系统mybatis+源码+调试部署+系统+数据库+lw
- STC89C52 8*8点阵 ----自学笔记
- 免费课程-作业 误入这个论坛
- Spark读取日志文件集中文乱码解决方法
- 支付业务中用户余额变为负数的处理方案
- [英语单词] inside-out
- php 小于n的质素,php 求质素(素数) 的实现代码