Quiero iniciar un paquete instalado desde mi aplicación de Android. Supongo que es posible usando intentos, pero no encontré una manera de hacerlo. ¿Hay un enlace, dónde encontrar la información?
java
android
android-intent
Bastian
fuente
fuente
Respuestas:
Si no conoce la actividad principal, puede usar el nombre del paquete para iniciar la aplicación.
fuente
CATEGORY_INFO
, y luego una actividad principal en la categoríaCATEGORY_LAUNCHER
. Devuelve nulo si no se encuentra ninguno " .Sé que esto ha sido respondido, pero así es como implementé algo similar:
Aún mejor, aquí está el método:
Código duplicado eliminado:
fuente
Encontré la solución. En el archivo de manifiesto de la aplicación encontré el nombre del paquete: com.package.address y el nombre de la actividad principal que quiero iniciar: MainActivity El siguiente código inicia esta aplicación:
fuente
fuente
Aquí está mi ejemplo de cómo iniciar el escáner de código de barras / QR desde mi aplicación si alguien lo encuentra útil
fuente
Editar dependiendo del comentario
En algunas versiones, como se sugiere en los comentarios, la excepción lanzada puede ser diferente.
Por lo tanto, la solución a continuación se modifica ligeramente
Respuesta original
Aunque se respondió bien, hay una implementación bastante simple que maneja si la aplicación no está instalada. Lo hago asi
Reemplace "applicationId" con el paquete que desea abrir, como com.google.maps, etc.
fuente
PackageManager.getLaunchIntentForPackage(...)
método devuelve nulo si no se reconoce el nombre del paquete. No tiraPackageManager.NameNotFoundException
. Ver aquí .startActivity(null)
un emulador de Android 10 y arroja unNullPointerException
y no unPackageManager.NameNotFoundException
.startActivity(Intent intent)
método cuando se le da un valor nuloIntent
y qué te hace decir eso? La documentación de los desarrolladores de Android solo indica que arrojará unActivityNotFoundException
.fuente
Si desea abrir una actividad específica de otra aplicación, podemos usar esto.
Si necesita otra aplicación, en lugar de mostrar Toast puede mostrar un cuadro de diálogo. Mediante el diálogo puede llevar al usuario a Play-Store para descargar la aplicación requerida.
fuente
com.android.settings.fuelgauge.PowerUsageSummary
es solo un alias de actividadcom.android.settings.Settings$PowerUsageSummaryActivity
, y se eliminó en Android Pie , así que culminé la edición para hacer que esta respuesta se adapte a Pie. Tenga en cuenta que también es compatible con la versión anterior, consulte AOSP commit el 10 de noviembre de 2011 af9252849fd94c1f2859c56a4010900ea38a607e, etc.Si conoce los datos y la acción a la que reacciona el paquete instalado, simplemente debe agregar esta información a su instancia de intención antes de comenzar.
Si tiene acceso al Manifiesto de Android de la otra aplicación, puede ver toda la información necesaria allí.
fuente
Pasos para lanzar una nueva actividad de la siguiente manera:
1.Obtener intención para el paquete
2. Si la intención es nula, redirija al usuario a PlayStore
3. Si la intención no es una actividad abierta nula
fuente
Es posible iniciar la actividad de una aplicación usando
Intent.setClassName
acuerdo con los documentos.Un ejemplo:
Para abrirlo fuera de la aplicación actual, agregue esta bandera antes de comenzar la intención.
Una respuesta relacionada aquí
fuente
fuente