如何检查由单独 Android 应用程序中的服务启动的 Android 应用程序是否已完成加载?

How to check if an Android app started by a service in a separate Android app has finished loading?

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

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

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

为了清楚起见,我不是在询问如何在相机应用程序上具体检查这个。我正在尝试学习如何启动任何应用程序(不是我开发的)并等待它完全加载并准备就绪。

I am using the code below to start an installed camera app (not developed by me) from a background service

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

另请注意,许多设备不会有该特定包。

I need to determine if the camera app is done loading and ready to use so I can prompt the camera to take a picture

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

此外,除了无障碍服务之外,一般来说,您无法告诉 运行 应用程序做任何事情,除非它有特定的 API 用于该目的。即使有无障碍服务,我怀疑无论相机应用程序是什么,都很难想出一个有效的方法。

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