包安装程序对话框可以关闭吗?
Package installer dialog dismissible?
我正在做一些演示应用程序商店。此应用程序可以检测深度 link 并从 link 安装应用程序。在安装应用程序之前,用户会看到对话框(至少在 Android 11 和 12),其中 he/she 可以单击“安装”或“取消”。 PackageInstaller
打开对话框。我正在使用 BroadcastReceiver
接收安装状态(例如 PackageInstaller.STATUS_PENDING_USER_ACTION
)。当用户单击取消或安装或发生某些错误时,我会收到一个状态。
但用户可以在对话框外单击。对话被微笑地关闭,并且没有返回任何状态报告。
有办法获取状态吗?或者让对话框不可关闭?
编辑:对话框是由 PackageInstaller
创建的,我无法控制它的属性。
直接 - 不,但您可以:
- 跟踪
onResume
事件以检测它何时关闭(它需要一些过滤以避免错误检测);
- 将其包装到某个代理 activity 中并使用
startActivityForResult
/onActivityResult
从 STATUS_PENDING_USER_ACTION
开始那个 EXTRA_INTENT
。 resultCode
总是 0
,但你至少会有一个结束事件。
我正在做一些演示应用程序商店。此应用程序可以检测深度 link 并从 link 安装应用程序。在安装应用程序之前,用户会看到对话框(至少在 Android 11 和 12),其中 he/she 可以单击“安装”或“取消”。 PackageInstaller
打开对话框。我正在使用 BroadcastReceiver
接收安装状态(例如 PackageInstaller.STATUS_PENDING_USER_ACTION
)。当用户单击取消或安装或发生某些错误时,我会收到一个状态。
但用户可以在对话框外单击。对话被微笑地关闭,并且没有返回任何状态报告。
有办法获取状态吗?或者让对话框不可关闭?
编辑:对话框是由 PackageInstaller
创建的,我无法控制它的属性。
直接 - 不,但您可以:
- 跟踪
onResume
事件以检测它何时关闭(它需要一些过滤以避免错误检测); - 将其包装到某个代理 activity 中并使用
startActivityForResult
/onActivityResult
从STATUS_PENDING_USER_ACTION
开始那个EXTRA_INTENT
。resultCode
总是0
,但你至少会有一个结束事件。