Android PackageManager:检查库 APK 是否已安装

Android PackageManager: check if a library APK has been installed

PackageManager.getPackageInfo(packageName, flags)方法可用于检查是否安装了特定的包。它 returns PackageInfo 或抛出 PackageManager.NameNotFoundException.

如何查看库APK是否安装?库 APK 的示例是三色库:https://www.apkmirror.com/apk/google-inc/trichrome-library/trichrome-library-98-0-4758-101-release/trichrome-library-98-0-4758-101-3-android-apk-download/download/

安装此 APK 后,调用 PackageManager.getPackageInfo('com.google.android.trichromelibrary', 0) 会抛出 PackageManager.NameNotFoundException

通过 ADB 查看,我看到安装后,它在 pm list packages 下不可见,但在 pm list libraries 下可见,名称为“library:com.google.android.trichromelibrary”。

有什么方法可以通过编程方式确定库是否已安装?

正如您在 pm 的源代码中看到的那样 link, pm list libraries command uses PackageManager.getSystemSharedLibraryNames() which is documented here

如果此方法不起作用,PackageManager中还有其他方法可以获取有关共享库的信息。正如@vmayorow 所提到的,这些方法之一是 PackageManager.getSharedLibraries(0).