自研功能在适配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功能是否开启相关推荐

  1. android 碎片技术,【移动开发】Android中强大的适配功能----Fragment(碎片)总结

    [移动开发]Android中强大的适配功能----Fragment(碎片)总结 发布时间:2020-06-27 00:32:58 来源:51CTO 阅读:10233 作者:zhf651555765 作 ...

  2. android java 8_四个库,让你在 Android 中启用 Java 8 功能

    Java 8 的推出引入很多革命性变化,加入了函数式编程的特征,使基于行为的编程成为可能,同时简化了各种设计模式的实现方式,是 Java 有史以来最重要的更新. 自 Android N 之后,由于 J ...

  3. Java乔晓松-android中调用系统拍照功能并显示拍照的图片

    android中调用系统拍照功能并显示拍照的图片 如果你是拍照完,利用onActivityResult获取data数据,把data数据转换成Bitmap数据,这样获取到的图片,是拍照的照片的缩略图 代 ...

  4. Android中实现一键分享功能

    在Android中开发中,我们会经常遇到使用一键分享的功能,今天我以使用第三方平台ShareSDK来实现一键分享向大家分享下具体的流程. 下面,我就以步骤顺序依次展示在自己的Android项目中如何实 ...

  5. Android中复制及粘贴功能

    工作中用到了Android的Copy and Paste功能,上官网http://developer.android.com/guide/topics/text/copy-paste.html#Cli ...

  6. Android中保存图片到本地功能实现

    文章转载自http://blog.csdn.net/ccpat/article/details/45314175  感谢原作者~ 本文描述将一个Bitmap对象保存为一个图片文件的主要步骤.保存的图片 ...

  7. android中最新webview的功能,Android WebView实现截长图功能

    本文实例为大家分享了Android实现截长图功能的具体代码,供大家参考,具体内容如下 先看看手机自带的长截屏功能:  机型: vivo x9 plus 大胆推测实现逻辑: 1:需要一个可以滚动的Vie ...

  8. 【移动开发】Android中强大的适配功能----Fragment(碎片)总结

    作为大多数刚接触Android应用开发的人来说,在一个强大的Activity类中,就可以完成丰富多彩的UI工作,但是杂乱的屏幕分辨率,使得本来好不容易写好的UI,变得不堪入目...该怎么办那? 查阅了 ...

  9. android中高德地图定位功能并且获取定位的城市

    一.概述 今天再一次用到了地图定位功能和地图显示功能,以前一直用的是高德地图定位,这次还是用高德,记录一下以便以后再做时方便一些.因为业务需要的功能不是很全,可以参考https://www.2cto. ...

最新文章

  1. 北美欧洲顶级大咖齐聚,在这里读懂 AIoT 未来!
  2. 怎么主动发起话题_谈恋爱怎样找话题聊天?
  3. C语言实例第5期:在控制台打印100-200之间的所有素数
  4. MATLAB中FFT的使用方法
  5. 蓝牙模块怎么指定查询另一个蓝牙模块_拆解报告:亚马逊10.or Buds真无线蓝牙耳机...
  6. switch语句嵌套if_C++核心准则ES.70:进行选择时,switch语句比if语句好
  7. 将AX寄存器中的16位数据分成4组(从高到低),每组4位,然后把这4组数作为数当中的低4位分别放在AL,BL,CL,DL中。
  8. 女车主车顶控诉“特斯拉刹车失灵”,结果被大汉抬走!车展变维权现场...
  9. Fenzo:来自Netflix基于Java语言的Mesos调度器
  10. Qt QMenu圆角阴影超详细 干净圆角 屏蔽原生阴影 绘制阴影
  11. 吝啬SAT问题是NP完全问题的证明
  12. paddlepaddle波士顿房价预测
  13. git上传详细步骤和提交代码的各种报错解决方式.
  14. Xmanager中的Xbrowser怎么使用?
  15. Intellij IDear关闭页面浏览器显示图标
  16. Excel2013打印时怎么固定表头及表尾让打印后的每页都可以看得到
  17. 一封超级牛的数据库程序员的情书表白
  18. 新概念1、2英语学习计划
  19. sFlow监控技术及Collector工具概述
  20. 【2002】学生姓名按字典排序

热门文章

  1. linux下rename命令用法详解(重命名文件)
  2. Android 解决系统字体变大导致WebView页面显示错乱问题
  3. Ardunio 电子秤 重力传感器HX711笔记
  4. java毕业设计汽配管理系统mybatis+源码+调试部署+系统+数据库+lw
  5. STC89C52 8*8点阵 ----自学笔记
  6. 免费课程-作业 误入这个论坛
  7. Spark读取日志文件集中文乱码解决方法
  8. 支付业务中用户余额变为负数的处理方案
  9. [英语单词] inside-out
  10. php 小于n的质素,php 求质素(素数) 的实现代码