我正在尝试从未安装的应用程序中获取一些信息(名称和图标)。基本上得到了apk文件,我还没有安装它,但我想在列表中显示它的名称和图标。
我正在尝试这样做:
public void getReceivedApps() {
packageManager = getPackageManager();
System.out.println("TRANSFER-RECORDActivityThe received filePath is : " + receivedFilePath);
PackageInfo packageInfo = packageManager.getPackageArchiveInfo(receivedFilePath, PackageManager.GET_GIDS);
System.out.println("TRANSFER RECORD ACTIVYT : O TO STRING TO PACKAGE INFO : " + packageInfo.toString());
ApplicationInfo applicationInfo = packageInfo.applicationInfo;
Log.d(this.getClass().getName(), "packaginf0 : " + applicationInfo.toString());
String appName = applicationInfo.loadLabel(packageManager).toString();
System.out.println("TRANSFER RECORD ACTIVITY : THE APPNAME IS : " + appName);
Drawable icon = packageManager.getPackageArchiveInfo(receivedFilePath, PackageManager.GET_GIDS).applicationInfo.loadIcon(packageManager);
//then add it to a list.
}
这个问题在 loadIcon 和 loadLabel 指令中给了我一个空指针异常。
顺便说一句,该receivedFilePath
字符串具有该 apk 文件的文件路径(即
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/"+getIntent().getStringExtra("receivedFilePath"); )
而作为字符串发送的这个 receivedFilePath 具有文件的名称(不是应用程序)