Inicia el navegador con clase personalizada – no se puede encontrar la actividad

Quiero ejecutar específicamente el navegador predeterminado de Android para una URL determinada. Estoy usando este código:

Intent i = new Intent(); i.setAction("android.intent.action.VIEW"); i.addCategory("android.intent.category.BROWSABLE"); i.setClassName("com.google.android.browser", "com.android.browser.BrowserActivity"); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.setData(Uri.parse(url)); startActivity(i); 

El error que recibo es:

 Unable to find explicit activity class { com.google.android.browser/com.android.browser.BrowserActivity}; have you declared this activity in your AndroidManifest.xml? 

También intenté filtrar las intenciones por el paquete:

 i.setPackage("com.google.android.browser"); 

En lugar de setClassName , pero sin resultado:

 No Activity found to handle Intent { act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] dat=http://www.google.com/ flg=0x10000000 pkg=android } 

También intenté agregar <uses-library android:name="com.google.android.browser" /> al manifiesto.

¿Me estoy perdiendo de algo?

PS: No estoy interesado en usar startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"))) ya que mostrará todas las opciones para el Intent navegación.

Yo uso esto, está bien.

 intent.setComponent(new ComponentName("com.android.browser", "com.android.browser.BrowserActivity")); 

Creo que sabes lo que está mal. 🙂

Tenga en cuenta que el navegador predeterminado puede ser anulado y no siempre es la aplicación integrada en el navegador, puede ser por ejemplo Opera Mini.

Debe hacer esto de la siguiente manera:

 Intent intent = new Intent(Intent.ACTION_VIEW); Uri data = Uri.parse("http://www.google.com"); intent.setData(data); startActivity(intent); 

Una forma de abrir una URL en un navegador desde el código es usar una vista web.

Cree una WebViewClientClass que amplíe el WebViewClient como:

 public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } 

A continuación, cree una vista web. Set webview.setWebViewClient(new WebViewClientClass()); — esta es una pequeña solución para que el navegador web predeterminado no asuma el control.

A continuación, tome la url en un edittext y configurarlo para cargar el navegador como:

 webview.loadurl(urlfield.getText().toString()); webview.requestFocus(); 

Esto debería cargar el navegador web con la URL que usted solicitó.

Espero que esto ayude… 🙂

  • ¿Cómo puedo obtener Internet en el emulador de Android?
  • Widget de Android en el emulador
  • Trató de arreglar androides "uso mal aconsejado o equivocado de una clase básica" fue malo
  • Acceder a google apis en el nuevo intel x86 android emulator
  • Instalar el archivo APK automáticamente después de la descarga
  • La simulación de ubicación del emulador no funciona
  • Java.lang.RuntimeException: createWindowSurface falló EGL_BAD_ALLOC en android
  • ¡No se pudo abrir el dispositivo HAX! HAX no funciona y el emulador se ejecuta en el emulador de modo de emulación
  • Android Emulator no ejecutará la aplicación iniciada desde eclipse
  • Cómo llamar al menú contextual en el emulador de Android
  • El emulador de Android ya no empieza
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.