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 enviar la intención a otra aplicación: error SecurityException: Negación de permisos: Starting Intent
  • Android - Actividad del logotipo de la aplicación
  • ¿Distinguir entre el tiempo de espera de la pantalla y el botón de encendido?
  • ¿Cómo enviar datos de una aplicación a otra aplicación en android?
  • IntentNotFoundException para TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA
  • Depurar los intentos
  • FLAG_ACTIVITY_CLEAR_TOP?
  • Cómo pasar el manejador usando la intención
  • Intención de actividad en Side-Menu.Android de diseño de material
  • Filtros de intento de host de Android en un comodín
  • ¿Hay alguna manera de consultar un tipo específico de filtros de intención aplicaciones capaces?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.