1
인 텐트 필터를 사용하여 설치된 모든 런처의 목록을 수집 할 수 있습니다. 문제는 앱 아이콘에 대한 int 참조를 가져 오는 것입니다. 아래의 코드는 NameNotFoundException 오류를 포착합니다.설치된 런처의 모든 앱 아이콘 목록을 가져 와서 원격보기의 각 아이콘을 표시합니다.
ApplicationInfo ai = pm.getApplicationInfo(lst.get(position).activityInfo.name, 0);
합니까 activityInfo.name는 패키지 이름을 반환하지 :
public RemoteViews getViewAt(int position) {
PackageManager pm = mContext.getPackageManager();
Intent i = new Intent("android.intent.action.MAIN");
i.addCategory("android.intent.category.HOME");
List<ResolveInfo> lst = pm.queryIntentActivities(i, 0);
RemoteViews rv = new RemoteViews(mContext.getPackageName(), R.layout.widget_item);
if(position < lst.size()) {
try {
ApplicationInfo ai = pm.getApplicationInfo(lst.get(position).activityInfo.name, 0);
int iconId = ai.icon;
rv.setInt(R.id.widget_item, "setBackgroundResource", iconId);
} catch (NameNotFoundException e) {
//Toast.makeText(mContext, "Fail: " + e, Toast.LENGTH_SHORT).show();
Log.d("Error: ", e.toString());
}
}
문제는이 라인입니까?