如何以编程方式关闭 Android 中的共享系统对话框?

How to dismiss share system dialog in Android programatically?

我有一个共享底部 sheet,我想以编程方式手动关闭此底部sheet。我怎样才能做到这一点?它最初是通过使用 Intent.createChooser.

调用的

我认为您不能直接这样做。当您 运行 Intent.createChooser() 返回的 Intent 时,它会启动 ChooserActivity.

如果您有签名级别的系统访问权限,您可以使用 Instrumentation#sendKeySync(),如果您有 root 权限,您可以使用 input keyevent 4,但是对于一般的用户来说,这两种方法都不可能-观众应用程序。

ChooserActivity 在清单中定义了一个 IntentFilter 来侦听 Intent.ACTION_CHOOSER,但它不会侦听任何其他内容,包括 Intent.ACTION_CLOSE_SYSTEM_DIALOGS,这通常是执行此操作的方法。

您可以使用 AccessibilityService,并从中发送 GLOBAL_ACTION_BACK 操作,但这对于您正在做的事情来说可能有点繁重。