Fiz uma pergunta semelhante a esta no início desta semana, mas ainda não estou entendendo como obter uma lista de todos os aplicativos instalados e, em seguida, escolher um para executar.
Eu tentei:
Intent intent = new Intent(ACTION_MAIN);
intent.addCategory(CATEGORY_LAUNCHER);
e isso mostra apenas aplicativos pré-instalados ou que podem executar o ACTION_MAIN
tipo Intent.
Também sei que posso usar PackageManager
para obter todos os aplicativos instalados, mas como faço para executar um aplicativo específico?
android
android-intent
2Real
fonte
fonte
Respostas:
A seguir, está o código para obter a lista de atividades / aplicativos instalados no Android:
Você receberá todos os dados necessários
ResolveInfo
para iniciar um aplicativo. Você pode verificar oResolveInfo
javadoc aqui .fonte
Aqui está uma maneira mais limpa de usar o
PackageManager
Mais informações aqui http://qtcstation.com/2011/02/how-to-launch-another-app-from-your-app/
fonte
Outra maneira de filtrar os aplicativos do sistema (funciona com o exemplo de king9981):
fonte
Aqui está um bom exemplo:
fonte
Obtendo a lista de aplicativos não pertencentes ao sistema instalados
fonte
Para filtrar em aplicativos baseados em sistema:
fonte
Para obter todos os aplicativos instalados, você pode usar o Gerenciador de Pacotes.
Para executar, você pode usar o nome do pacote
Para mais detalhes, você pode ler este blog http://codebucket.co.in/android-get-list-of-all-installed-apps/
fonte
Você pode encontrar a lista de aplicativos instalados no dispositivo Android usando o código abaixo, "packageInfo" Contém informações de aplicativos instalados no dispositivo. podemos recuperar Intent para o aplicativo instalado a partir do objeto packageinfo e, usando startactivity (intent), pode iniciar o aplicativo. depende de você como você organiza a interface do usuário, seja Listview ou Gridview. Assim, no evento de clique com base na posição, é possível recuperar o objeto de intenção e iniciar a intenção de atividade.
fonte
Eu tinha um requisito para filtrar os aplicativos do sistema que o usuário realmente não usa (por exemplo, "com.qualcomm.service", "serviços de atualização" etc.). Por fim, adicionei outra condição para filtrar a lista de aplicativos. Acabei de verificar se o aplicativo tem 'intenção do iniciador'.
Então, o código resultante se parece com ...
fonte
Se houver vários lançadores em um pacote acima, o código terá um problema. Por exemplo: no LG Optimus, o Facebook para LG, o MySpace para LG, o Twitter para LG contém o nome de um pacote SNS e, se você usar acima, o SNS repetirá. Depois de horas de pesquisa, eu vim com o código abaixo. Parece funcionar bem.
fonte
@ Jas: Eu não tenho mais esse código, mas encontrei algo próximo. Eu fiz isso para procurar "componentes" do meu aplicativo, são apenas atividades com uma determinada categoria.
Eu comentei a parte em que ele recebe o nome da atividade, mas é bem direto.
fonte
Solução limpa que filtra aplicativos do sistema com êxito
A idéia por trás dessa solução é que a atividade principal de todo aplicativo do sistema não tenha um ícone de atividade personalizado . Este método me fornece um excelente resultado:
fonte
fonte
Eu tenho outra solução:
fonte
Obtenha todos os aplicativos:
Verifique se o aplicativo instalado e abra:
fonte
você pode usar isso:
fonte
fonte