사용자 정의 listPreference가 있습니다. 실행할 수있는 응용 프로그램 목록을 표시하고 싶습니다 (CATEGORY_LAUNCHER로 활동 포함). 선택한 항목은 나중에 응용 프로그램을 시작하는 데 사용됩니다. 솔루션 검색을 수행 할 때 목록에는 실행할 수없는 앱도 포함되었습니다. 이것을 좁힐 방법이 있습니까?시작할 수있는 설치된 응용 프로그램의 목록을 가져옵니다.
public class AppSelectorPreference extends ListPreference {
@Override
public int findIndexOfValue(String value) {
return 0;
//return super.findIndexOfValue(value);
}
public AppSelectorPreference(Context context, AttributeSet attrs) {
super(context,attrs);
PackageManager pm = context.getPackageManager();
List<PackageInfo> appListInfo = pm.getInstalledPackages(0);
CharSequence[] entries = new CharSequence[appListInfo.size()];
CharSequence[] entryValues = new CharSequence[appListInfo.size()];
try {
int i = 0;
for (PackageInfo p : appListInfo) {
if (p.applicationInfo.uid > 10000) {
entries[i] = p.applicationInfo.loadLabel(pm).toString();
entryValues[i] = p.applicationInfo.packageName.toString();
i++;
}
}
} catch (Exception e) {
e.printStackTrace();
}
setEntries(entries);
setEntryValues(entryValues);
}
} Frazerm63 @
당신이 CATEGORY_LAUNCHER 및 android.intent.action.MAIN과 활동을 포함 할 수있다 이러한 응용 프로그램 패키지 이름의 정렬 목록을 얻을하는 데 도움이 될 것입니다 답변 수에서 할 수 있습니다. – Herry