2

嗨我有一個應用程序在我的SD(沒有安裝只存儲在那裏)我怎麼才能得到有關它的信息只是給應用程序的路徑。例如,我有pandora.apk坐在我的下載文件夾中,所以路徑是/sdcard/download/pandora.apk,知道該路徑,我怎樣才能得到它的圖標。感謝您的幫助獲取SD卡上的應用程序圖標

我試過這個代碼,但得到一個NullPointerException

final PackageManager pm = context.getPackageManager(); 
PackageInfo packageInfo = pm.getPackageArchiveInfo("/sdcard/download/pandora.apk", 0); 
Drawable icOn = packageInfo.applicationInfo.loadIcon(context.getPackageManager()); 

回答

4

它已經回答了這裏。 How to show icon of apk in my File manager

if (file.getPath().endsWith(".apk")) { 
String filePath = file.getPath(); 
PackageInfo packageInfo = context.getPackageManager().getPackageArchiveInfo(filePath, PackageManager.GET_ACTIVITIES); 
ApplicationInfo appInfo = packageInfo.applicationInfo; 
if (Build.VERSION.SDK_INT >= 8) { 
    appInfo.sourceDir = filePath; 
    appInfo.publicSourceDir = filePath; 
} 
Drawable icon = appInfo.loadIcon(context.getPackageManager()); 
bmpIcon = ((BitmapDrawable) icon).getBitmap(); 
} 
+0

感謝抱歉關於我搜索到的重複,但無法找到我正在尋找的猜測我只是沒有搜索好:) – user577732 2011-12-17 21:08:44