如何以编程方式关闭 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
操作,但这对于您正在做的事情来说可能有点繁重。
我有一个共享底部 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
操作,但这对于您正在做的事情来说可能有点繁重。