如何将吐司信息隐藏在对讲机上

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (16)

对于可访问性演示目的,我正在创建android示例应用程序。顺便说一句,在创建糟糕的示例可访问性时,我有一个关于toast问题的问题。默认情况下,每次烤面包显示,TalkBack读取吐司,这是非常好的。

但有时我想隐藏TalkBack的吐司,以便TalkBack不会读取吐司信息。当然,TalkBack必须读取所有Toast消息,以便与没有屏幕阅读器用户提供相同的信息。但有时候在某些应用程序中,屏幕上会出现太多的Toast消息,甚至同样的消息仍留在屏幕上。

因此,在这种情况下,TalkBack说太多,甚至TalkBack也不会读吐司,盲人用户可以通过刷卡阅读消息。此吐司消息也不是警报文本。所以在某些情况下,我认为需要从TalkBack隐藏吐司。

但我不知道该怎么做。我在java中设置了一个视图并添加了toast消息。然后我将importantForAccessibility设置为NO,但它不起作用。

我的代码如下。最后,我称之为定制TalkBack吐司的堆栈。谢谢。

imgClick2 = (ImageView)findViewById(R.id.imageView2);
imgClick2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
    Toast toast = new Toast(MainActivity.this);
    TextView messageView = new TextView(MainActivity.this);
        messageView.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
    messageView.setText("visible text");

    toast.setView(messageView);
    toast.show();
    }
});
提问于
用户回答回答于

谢谢你的建议,我真的同意你的意见。但是基于这种情况,我需要知道如何阻止像Toast类这样的系统产生的可访问性事件。同样,我也向那些向有远见的用户和对讲机用户提供相同信息的开发人员提供建议,而Toast消息也是同样的情况。但是在一些罕见的情况下,不仅仅是Toast可访问性事件,我需要学习通过系统阻止一些可访问性事件。例如,有些情况下我应该阻止可访问性事件,例如语音输入。通常情况下,如果我按下语音输入按钮,就会出现新的活动,但是为了防止将对讲机语音输入到语音输入文本字段,对讲机什么也不说。当然,我知道这是很好的沟通与音频管理API与对讲机。但是,在某些情况下,如果开发人员不使用通用的音频API,那么在语音输入时,对讲机就会说一些话,这是一个很大的问题。像这个例子一样,我需要知道如何阻止可访问性事件。吐司只是我的榜样。请帮帮我。

扫码关注云+社区

领取腾讯云代金券