首页 > 解决方案 > 如何检查由单独 Android 应用程序中的服务启动的 Android 应用程序是否已完成加载?

问题描述

我正在使用下面的代码从我正在开发的应用程序的后台服务中启动已安装的相机应用程序(不是我开发的)。

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.sec.android.app.camera");
startActivity( launchIntent );

我需要确定相机应用程序是否已完成加载并准备好使用,以便提示相机拍照。拍照后,我的应用程序将被带回前台并显示屏幕保护程序,直到再次启动相机或带回前台拍摄另一张照片。有没有办法在每次尝试发送命令之前验证相机应用程序是否已加载并准备就绪?

为清楚起见,我不是在问如何专门在相机应用程序上检查这一点。我正在尝试学习如何启动几乎任何应用程序(不是由我开发的)并聆听它完全加载并准备好。

标签: androidandroid-intentandroid-lifecycle

解决方案


我正在使用下面的代码从后台服务启动已安装的相机应用程序(不是我开发的)

现代版本的 Android 不支持从后台启动活动。

另请注意,许多设备将没有该特定软件包。

我需要确定相机应用程序是否已完成加载并准备好使用,以便提示相机拍照

“完成加载并准备使用”没有规范的定义。而且,一般来说,出于隐私和安全原因,您无法监控其他应用程序的操作。

此外,在无障碍服务之外,一般来说,您无法告诉正在运行的应用程序执行任何操作,除非它具有用于该目的的特定 API。即使有无障碍服务,我怀疑无论相机应用程序是什么,都很难找到一种有效的方法。

如果您希望在前台使用相机应用程序拍照,请使用ACTION_IMAGE_CAPTURE. 或者,将相机功能直接集成到您自己的应用程序中,例如通过 CameraX 或其他库。


推荐阅读