Quiero ejecutar específicamente el navegador Android predeterminado para una URL determinada. Estoy usando este código:Iniciar el navegador con clase personalizada: no se puede encontrar la actividad
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 probé el filtrado de los intentos por el paquete:
i.setPackage("com.google.android.browser");
en lugar de setClassName
, pero a en vano:
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 traté de agregar <uses-library android:name="com.google.android.browser" />
al manifiesto.
¿Falta algo aquí?
PD: No estoy interesado en usar startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com")))
, ya que mostrará una lista de todas las opciones para la exploración Intent
.
Como lo indiqué en mi pregunta, quiero poder ejecutar el * navegador Android * predeterminado, no el * explorador seleccionado * predeterminado. Como nodo lateral, primero probé con la solución que mencionas, pero fue en vano ya que obviamente inicia el navegador que está configurado como predeterminado (o inicia el selector de aplicaciones). –
cómo usar esta intención en una clase de no actividad? – Maxwell
El inconveniente de esto: para los archivos html locales, lanza la aplicación HTMLViewer en lugar del navegador. – JustAMartin