-1
나는 앱에 locker.but을 개발하려고 노력 중이므로 사용자에게 기기에 설치된 모든 앱의 목록을 보여줄 필요가 있습니다. 처음에는 사용자가 설치된 모든 응용 프로그램을 보여줄 수 있었지만 카메라, 다이얼러, 메시징 등과 같은 시스템 응용 프로그램은 표시하지 않았습니다. 코드를 수정할 때 모든 응용 프로그램에서 모든 것을 보여줄 수 있었지만이 방법도 역시 공개했습니다. 많은 정보는 모든 com.android 패키지, 실행기 패키지 등을 보여 주므로 시스템 응용 프로그램을 무시하면서 연락처, 다이얼러 및 기타 응용 프로그램과 같은 시스템 응용 프로그램을 필터링하고 표시하는 방법이 있습니까? 또한이 목록을 어떻게 정렬합니까? 알파벳 순서? 미리 감사드립니다 :)안드로이드에 설치된 Particuar 앱만 표시하기
public class ApkList extends Fragment implements OnItemClickListener {
PackageManager packageManager;
ListView apkList;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View rootView = inflater.inflate(R.layout.app_list, container, false);
return rootView;
}
@Override
public void onStart() {
// TODO Auto-generated method stub
super.onStart();
packageManager = getActivity().getPackageManager();
List<PackageInfo> packageList = packageManager
.getInstalledPackages(PackageManager.GET_PERMISSIONS);
List<PackageInfo> packageList1 = new ArrayList<PackageInfo>();
/* To filter out System apps */
for (PackageInfo pi : packageList) {
//boolean b = isSystemPackage(pi);
//if (!b) {
packageList1.add(pi);
//}
}
apkList = (ListView) getView().findViewById(R.id.applist);
apkList.setAdapter(new ApkAdapter(getActivity(), packageList1,
packageManager));
apkList.setOnItemClickListener(this);
}
private boolean isSystemPackage(PackageInfo pkgInfo) {
return ((pkgInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) ? true
: false;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long row) {
PackageInfo packageInfo = (PackageInfo) parent
.getItemAtPosition(position);
AppData appData = (AppData) getActivity().getApplicationContext();
appData.setPackageInfo(packageInfo);
Intent appInfo = new Intent(getActivity().getApplicationContext(),
ApkInfo.class);
startActivity(appInfo);
}
}
> "... 응용 프로그램 사물함을 개발하기"- 아마도 당신은 이것을해서는 안됩니다. 나쁜 생각 같아. –