안녕하세요 초보 개발자입니다.
저번에 두서없이 질문을 드렸었네요.
간단한 바로가기 기능들을 구현하려고 하고있습니다. 홈런처처럼요.
코드는 다음과 같습니다.
(ComponentName ActivityName) 을 제대로 넣은건지 사실 모르겠습니다.
private List<ResolveInfo> apps;
private PackageManager pm;
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
pm = getPackageManager();
apps = pm.queryIntentActivities(mainIntent, 0);
ResolveInfo info = apps.get(position);
pn = info.activityInfo.packageName
na = info.activityInfo.name
imageView.setImageDrawable(pm.getActivityIcon(new ComponentName(pn, na)));
오류가 나는 부분은 getActivityIcon 부분입니다. NullPointerException이 나면서 에러코드가 여러개가 뜨는 상황이라 정확한 에러는 모르겠습니다만 getActivityIcon쪽에서 나는건 확실합니다.
코드를 저렇게 쓴 이유는 packageName과 name을 DB에 저장했다가 불러오기 때문입니다. imageView는 사실 다른 액티비티에 존재하고 DB에서 뽑아온 packageName과 name을 이용해서 아이콘을 로드할려고 하는데 안되네요.
패키지명만 이용해서 아이콘을 뽑아와보니 연락처랑 통화, 통화기록이 겹치는 문제들이 발생해서 저렇게 이용하려고 하고 있습니다.
액티비티아이콘을 로드할수 있는 다른 방법을 알려주셔도 감사하겠습니다.
해결책을 못찾고 있어서 이미지도 DB에 저장하려고 생각중에 있습니다.