最近自己写插件时,总是发现packageManager.getPackageArchiveInfo 返回为null,但是自己权限都打开,加载路径也是正确的,到底是为什么呢?
packageInfo =packageManager.getPackageArchiveInfo(path,
PackageManager.GET_ACTIVITIES );
原来path写法有问题,之前的写法:
Environment.getExternalStorageDirectory()+"/Download/lh.apk"
可是上面的写法在Android9.0 之后就废弃了(为了提高用户隐私,不建议直接访问共享/外部存储设备),并且不再返回可访问的文件。
那怎么写了,官方推荐使用:
context.getExternalFilesDir(String type)
修改之后,返回就正确了。

本文介绍了在Android 9.0及更高版本中,使用packageManager.getPackageArchiveInfo方法返回null的问题解决方案。由于Android系统的隐私保护增强,直接访问共享/外部存储设备的方法已被废弃。文章提供了正确的path写法,即使用context.getExternalFilesDir替换Environment.getExternalStorageDirectory,以确保在新系统中获取到正确的包信息。
1294

被折叠的 条评论
为什么被折叠?



