Pergunta

Eu estou indo para desinstalar um aplicativo quando o usuário clicar em um botão.com este código:

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

mas alguns aplicativos não desinstalado.como a Definição de Música ou ...quando eu estou indo para desinstalar os aplicativos que eu vejo :desinstalar não bem-sucedida.

Eu recebo a minha pacotes com este código :

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

Como posso detectar um aplicativo é desinstalado ou não?

Foi útil?

Solução

Você deve verificar se o aplicativo que você está tentando desinstalar "sistema", procurando por ApplicationInfo.flags.Sistema de aplicação de ter ApplicationInfo.FLAG_SYSTEM conjunto de bits.Aqui está um pequeno pedaço de código:

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

Seleção documentação para ApplicationInfo classe para outras bandeiras.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top