【问题标题】:Is it possible to force either Yes/No from any android Dialog?是否可以从任何 android 对话框强制是/否?
【发布时间】:2014-08-27 17:19:20
【问题描述】:

我有几个意图,那就是 最终询问用户是“是”还是“否”。

其中,对话框本身不是来自我的代码。我只是执行 Intent。

我的问题很简单。

如何隐藏意图中显示的每个对话框并将其强制为“是”/“否”?

例如这段代码:

Intent BlueIntent  = new Intent(bluetooth.ACTION_DISCOVERY_STARTED);
        BlueIntent.putExtra(bluetooth.EXTRA_DISCOVERABLE_DURATION, 300);
        startActivity(BlueIntent);

我们都知道上面的代码会询问用户(通过显示一个是/否对话框)给用户。 那么如何以编程方式强制每个显示的对话框选择“是”或“否”?

有什么想法吗?

【问题讨论】:

  • 你可以使用自定义对话框吗?我不确定这是否可以使用默认对话框来完成。
  • 确定我们是否可以使用自定义对话框。但是上面的说法呢?我的意思是,我们如何定制它? @ShivamVerma
  • 您找到解决方案了吗?我认为这是一个非常有效的问题
  • 我稍后会检查它@Snake....

标签: java android optimization dialog alert


【解决方案1】:

答案:

据我所知,这通常不可能覆盖另一个活动中的用户输入。

原因:

您正在使用Intent 打开蓝牙设置,让用户处理其余的事情。任何应用都不应该处理/更改另一个的输入事件(除非它是无障碍服务)。所以这违背了应用程序安全的整个概念。

如果是AccessibilityServices,用户必须使用具有特殊服务的辅助功能设置明确启动它们。见docs

AccessibilityService 可以拦截用户输入和特定事件,但我不确定如何使用它来实现您想要的。

[TIP]我觉得如果你有android.permission.BLUETOOTH_ADMIN权限的话可以直接打开蓝牙。这样可以避免设置生成的默认对话框。

希望我的回答对你有所帮助。

【讨论】:

  • 我确实已经在我的项目中设置了 BLUETOOTH_ADMIN 权限。但是一旦我执行了上述(第一个)代码,它仍然会询问警报是/否。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-04
  • 1970-01-01
  • 2016-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多