문제

사용자가 버튼을 클릭하면 응용 프로그램을 제거 할 것입니다.이 코드로 :

Uri packageURI = Uri.parse("package:"
        + pkNames[position]);
Intent uninstallIntent = new Intent(
Intent.ACTION_DELETE, packageURI);
context.startActivity(uninstallIntent);
.

그러나 일부 응용 프로그램은 제거되지 않습니다.설정이나 음악과 같은 ... 내가이 응용 프로그램을 제거하려고 할 때는 다음과 같습니다. 제거는 성공하지 못합니다.

이 코드로 내 패키지를 가져옵니다.

        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        packages = pm.queryIntentActivities(mainIntent, 0);
.

응용 프로그램을 어떻게 탐지 할 수 있습니까?

도움이 되었습니까?

해결책

제거하려는 응용 프로그램이 ApplicationInfo.flags를 들여다 보면 "시스템"인지 확인해야합니다.시스템 응용 프로그램에는 ApplicationInfo.FLAG_SYSTEM 비트 세트가 있습니다. 여기에 약간의 코드가 있습니다 :

boolean isSystem(ApplicationInfo info) {
   return (info.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
}
.

ApplicationInfo 클래스의 문서는 다른 유용한 플래그에 대한 문서를 확인합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top