2

こんにちは私は私のsdにアプリケーションを持っています(そこに保存されているだけでインストールされていません)アプリケーションへのパスを与えるだけでそれに関する情報を取得するにはどうすればよいですか?たとえば、ダウンロードフォルダにpandora.apkを置いているので、パスは/sdcard/download/pandora.apkであり、そのパスを知っていると、そのアイコンを取得できます。助けてくれてありがとう

このコードを試しましたが、nullpointerexceptionが発生します

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

1 に答える 1

4

それはすでにここで答えました。ファイルマネージャーでapkのアイコンを表示する方法

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();
}
于 2011-12-17T21:04:15.530 に答える