Navegador de lanzamiento de Android sin especificar una URL

¿Cómo se va a lanzar el navegador de una actividad sin especificar una url. Me gustaría abrir el navegador para que el usuario pueda continuar navegando sin cambiar la página en la que estaban?

SOLUCIÓN: La respuesta a continuación fue correcta y funcionó, pero para ser más específico para los futuros lectores, aquí está el código de trabajo:

Intent i = new Intent(); i.setAction(Intent.ACTION_MAIN); i.addCategory(Intent.CATEGORY_LAUNCHER); i.setAction("com.android.browser"); ComponentName comp = new ComponentName("com.android.browser", "com.android.browser.BrowserActivity"); i.setComponent(comp); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(i); 

¡Gracias!

3 Solutions collect form web for “Navegador de lanzamiento de Android sin especificar una URL”

Use Intent # setComponent () para establecer el paquete del navegador y el nombre de la clase. A continuación, inicie la actividad.

En caso de que (el ComponentName ("com.android.browser", "com.android.browser.BrowserActivity") ) cambia en el futuro, puede intentar algo similar al código siguiente:

 public static ComponentName getDefaultBrowserComponent(Context context) { Intent i = new Intent() .setAction(Intent.ACTION_VIEW) .setData(new Uri.Builder() .scheme("http") .authority("xyz") .appendQueryParameter("q", "x") .build() ); PackageManager pm = context.getPackageManager(); ResolveInfo default_ri = pm.resolveActivity(i, 0); // may be a chooser ResolveInfo browser_ri = null; List<ResolveInfo> rList = pm.queryIntentActivities(i, 0); for (ResolveInfo ri : rList) { if (ri.activityInfo.packageName.equals(default_ri.activityInfo.packageName) && ri.activityInfo.name.equals(default_ri.activityInfo.name) ) { return ri2cn(default_ri); } else if ("com.android.browser".equals(ri.activityInfo.packageName)) { browser_ri = ri; } } if (browser_ri != null) { return ri2cn(browser_ri); } else if (rList.size() > 0) { return ri2cn(rList.get(0)); } else if (default_ri == null) { return null; } else { return ri2cn(default_ri); } } private static ComponentName ri2cn(ResolveInfo ri) { return new ComponentName(ri.activityInfo.packageName, ri.activityInfo.name); } 

Básicamente, aquí construyo una intención de ver una página http ficticia, obtener la lista de actividades que pueden manejar la intención, compararlo con el manejador predeterminado devuelto por resolveActivity () y devolver algo. No necesito comprobar si hay una acción PRINCIPAL del lanzador (mi código utiliza la acción de la VISIÓN), pero usted debe probablemente.

Esta respuesta puede ayudar. Desde ¿Cómo abrir el navegador predeterminado de Android sin especificar una URL?

 PackageManager pm = getPackageManager(); Intent queryIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com")); ActivityInfo af = queryIntent.resolveActivityInfo(pm, 0); Intent launchIntent = new Intent(Intent.ACTION_MAIN); launchIntent.setClassName(af.packageName, af.name); startActivity(launchIntent); 
  • Intentando abrir una carpeta específica en android utilizando la intención
  • ¿Por qué no puedo pasar los datos a través de Intent?
  • Android.intent.action.BOOT_COMPLETED La intención no se recibe en "Reiniciar" o "Reiniciar"
  • Manejo de esquemas de URI desconocidos en Android (ejemplo de Bitcoin)
  • Android, ¿Cómo llamar a onCreate () explícitamente de otro método?
  • Abrir un archivo seleccionado (imagen, pdf, ...) de forma programática de mi aplicación de Android?
  • Theme.NoDisplay crea un retraso de strage
  • Listando todos los extras de una Intención
  • Intentos en Kotlin
  • LinkedList puesto en Intent extra se refunde a ArrayList al recuperar en la actividad siguiente
  • Android PendingIntent. El botón Atrás cierra la aplicación en lugar de restaurar la actividad anterior de la pila
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.