Невозможно получить доступ к ресурсам из APK на SD-карте. - PullRequest
2 голосов
/ 29 июля 2011

Я использую следующий фрагмент, чтобы получить название приложения и значок нескольких APK на моей SD-карте.

PackageInfo packageInfo = packageManager.getPackageArchiveInfo(apkPath, 0);
ApplicationInfo appInfo = packageInfo.applicationInfo;
Drawable appIcon = appInfo.loadIcon(packageManager);
String appName = appInfo.loadLabel(packageManager).toString();

Я могу получить доступ к имени пакета, но loadIcon возвращает значок приложения Android по умолчанию для всех приложений, а loadLabel возвращает имя пакета (не метку приложения).

Я также получаю следующие предупреждающие сообщения в logcat:

Failure retrieving icon 0x7f020005 in package com.sample.radio
Failure retrieving text 0x7f050000 in package com.taskkiller.demo

Я работаю под управлением Android 2.2, любые указатели будут оценены. Спасибо.

1 Ответ

6 голосов
/ 29 марта 2013

Может потребоваться добавить две строки перед созданием appIcon, AppName:

PackageManager pm = getPackageManager();
PackageInfo    pi = pm.getPackageArchiveInfo(APKFilePath, 0);

// NEW LINES
pi.applicationInfo.sourceDir = APKFilePath;
pi.applicationInfo.publicSourceDir = APKFilePath; 

String   AppName = (String)pi.applicationInfo.loadLabel(pm);
Drawable appIcon=pm.getApplicationIcon(pi.applicationInfo);
...