PackageInfo pkgInfo = pm.getPackageArchiveInfo(absPath, PackageManager.GET_ACTIVITIES); 比如用这个来获取u盘里面的apk信息会导致u盘拔出的时候没有卸载成功,有什么可以替换掉这个的
时间: 2024-02-22 11:56:18 浏览: 93
PackageManager获取App基本信息实现Apk导出、分享、卸载
你可以使用以下代码来获取包信息,它不会导致u盘拔出的时候没有卸载成功:
```java
PackageInfo pkgInfo = getPackageManager().getPackageArchiveInfo(absPath, 0);
if (pkgInfo != null) {
ApplicationInfo appInfo = pkgInfo.applicationInfo;
String appName = getPackageManager().getApplicationLabel(appInfo).toString();
String packageName = appInfo.packageName;
String versionName = pkgInfo.versionName;
int versionCode = pkgInfo.versionCode;
Drawable icon = getPackageManager().getApplicationIcon(appInfo);
}
```
这里使用了`getPackageManager().getPackageArchiveInfo()`来获取包信息,第二个参数为0表示不获取任何附加信息。然后可以从`PackageInfo`中获取应用信息和版本信息,使用`getPackageManager().getApplicationLabel()`获取应用名称,使用`getPackageManager().getApplicationIcon()`获取应用图标。
阅读全文