Como podem detectar se um aplicativo é desinstalado?
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?
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