Hice una pregunta similar a esta a principios de esta semana, pero todavía no entiendo cómo obtener una lista de todas las aplicaciones instaladas y luego elegir una para ejecutarla.
He intentado:
Intent intent = new Intent(ACTION_MAIN);
intent.addCategory(CATEGORY_LAUNCHER);
y esto solo muestra aplicaciones preinstaladas o que pueden ejecutar el ACTION_MAIN
tipo Intent.
También sé que puedo usar PackageManager
para obtener todas las aplicaciones instaladas, pero ¿cómo puedo usar esto para ejecutar una aplicación específica?
android
android-intent
2Real
fuente
fuente
Respuestas:
El siguiente es el código para obtener la lista de actividades / aplicaciones instaladas en Android:
Obtendrá todos los datos necesarios
ResolveInfo
para iniciar una aplicación. Puedes consultarResolveInfo
javadoc aquí .fuente
Aquí hay una forma más limpia de usar
PackageManager
Más información aquí http://qtcstation.com/2011/02/how-to-launch-another-app-from-your-app/
fuente
Otra forma de filtrar las aplicaciones del sistema (funciona con el ejemplo de king9981):
fuente
Aquí un buen ejemplo:
fuente
Obtener una lista de aplicaciones instaladas que no son del sistema
fuente
Para filtrar en aplicaciones basadas en sistemas:
fuente
Para obtener todas las aplicaciones instaladas, puede usar Package Manager.
Para ejecutar puede usar el nombre del paquete
Para obtener más detalles, puede leer este blog http://codebucket.co.in/android-get-list-of-all-installed-apps/
fuente
Puede encontrar la lista de aplicaciones instaladas en el dispositivo Android utilizando el siguiente código, "packageInfo" contiene información de la aplicación instalada en el dispositivo. podemos recuperar Intent para la aplicación instalada desde el objeto packageinfo y, mediante el uso de startactivity (intent), podemos iniciar la aplicación. depende de usted cómo organizar la interfaz de usuario, ya sea Listview o Gridview. así que en el evento de clic basado en la posición, puede recuperar el objeto de intención e iniciar la intención de actividad.
fuente
Tenía el requisito de filtrar las aplicaciones del sistema que el usuario realmente no usa (por ejemplo, "com.qualcomm.service", "servicios de actualización", etc.). Finalmente, agregué otra condición para filtrar la lista de aplicaciones. Acabo de comprobar si la aplicación tiene 'intención de inicio'.
Entonces, el código resultante se parece a ...
fuente
Si hay múltiples lanzadores en un paquete, el código anterior tiene un problema. Por ejemplo: en LG Optimus, Facebook para LG, MySpace para LG, Twitter para LG contiene en un paquete el nombre de SNS y si lo usa arriba, SNS se repetirá. Después de horas de investigación, llegué con el siguiente código. Parece funcionar bien.
fuente
@Jas: Ya no tengo ese código, pero he encontrado algo cercano. He hecho esto para buscar "componentes" de mi aplicación, son solo actividades con una categoría determinada.
He comentado la parte donde recibe el nombre de la actividad, pero es bastante sencillo.
fuente
Solución limpia que filtra con éxito las aplicaciones del sistema
La idea detrás de esta solución es que la actividad principal de cada aplicación del sistema no tiene un ícono de actividad personalizado . Este método me da un excelente resultado:
fuente
fuente
Tengo otra solucion:
fuente
Obtén todas las aplicaciones:
Verifique si la aplicación instalada luego abre:
fuente
puedes usar esto:
fuente
fuente