android - 如何检测 TalkBack 是否处于活动状态?使用 Xamarin Forms -Dependency 服务
问题描述
如果 TalkBack 处于活动状态,我想返回 true 或 false。
公共布尔 IsVoiceOver() {
AccessibilityManager am = (AccessibilityManager)
Context.AccessibilityService;
var a = am.IsEnabled;
if (!a)
{
Console.WriteLine(" DROID voice over is : " + a);
return false;
}
else
{
Console.WriteLine("DROID voice over is : " + a);
return true;
}
}
但是,“AccessibilityManager”不起作用。我猜是不确定的语法问题。
解决方案
您可以做的是检查 AccessibilityManager 是否可用
如下所示:
AccessibilityManager am = (AccessibilityManager)GetSystemService(Context.AccessibilityService);
if (am.IsEnabled)
{
Console.WriteLine(" DROID voice over is active);
return am.IsEnabled;
}
else
{
Console.WriteLine("DROID voice over is inactive);
return am.IsEnabled;
}
不要忘记添加以下 using 语句:
using Android.Views.Accessibility;
using Android.Content;
更新
要访问 GetSystemService 方法,您将需要当前活动插件
为其安装 NuGet 包。
只需在 MainActivity 的 OnCreate 上调用 Init 方法
CrossCurrentActivity.Current.Init(this, bundle);
然后就可以调用GetSystemService方法了,如下图:
AccessibilityManager am = (AccessibilityManager)CrossCurrentActivity.Current.Activity.GetSystemService(Context.AccessibilityService);
推荐阅读
- javascript - babel、core-js、异步和再生器/运行时错误
- c - 这种连续的 C 内存分配方法到底在做什么?
- angular - 同一服务器上两个应用程序的 Apache 配置
- c - 如何将变量合并到位掩码中?
- c# - 在 Mdi Children 之间切换
- python - 如何将具有 JSON 值的文本文件转换为 CSV
- javascript - Javascript 映射然后过滤唯一的数组项
- jasper-reports - 是否有用于获取碧玉报告名称的默认参数?
- python - 如何在 .py 文件中设置 Anaconda 环境?
- javascript - 错误:未实现:window.scrollTo。我们如何从 Jest 测试中删除这个错误?