Android 应用程序包管理器:检查库 APK 是否已安装。

3
PackageManager.getPackageInfo(packageName,flags)方法可用于检查特定包是否已安装,它将返回PackageInfo或抛出PackageManager.NameNotFoundException异常。
如何检查库APK是否已安装?Trichrome库是库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"。
有没有办法以编程方式确定库是否已安装?
1个回答

3

可以在此链接中查看pm源代码,命令pm list libraries使用了PackageManager.getSystemSharedLibraryNames()方法,该方法的文档在这里

如果该方法无效,则PackageManager还有其他方法可获取有关共享库的信息。如@vmayorow所述,其中之一是PackageManager.getSharedLibraries(0)


我已经测试了这种方法,但它并没有返回所安装的库的名称(我不知道为什么)。但是PackageManager.getSharedLibraries(0)方法返回了已安装的库!所以我认为你的答案需要进行修正才能被选中。 - vmayorow
1
@vmayorow PackageManager 的实现在某些情况下可能是设备特定的,我怀疑这就是该方法无法为您工作的原因。我还更新了答案,包括您的解决方案。 - mahdi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接