Configuración de valores predeterminados para enlaces

He estado confundido acerca de cómo funciona esto para cotizar hace un tiempo: cuando hago clic en un enlace, digamos en un navegador (Chrome, por ejemplo) y obtengo el cuadro de diálogo "abrir con" si lo desea, si elijo guardar un valor predeterminado para un enlace de mapas de Google, ¿eso establecerá el valor predeterminado en TODOS los enlaces de mapas de Google, ese enlace en particular, o me estoy perdiendo algo?

A menudo tengo miedo de establecer valores predeterminados porque no tengo claro para qué estoy configurando un valor predeterminado: ¿es el nombre de dominio?

Agradecería cualquier consejo, enlace a la documentación o sugerencias de aplicaciones para aclararme esto. ¡Gracias!

No estoy 100% seguro de haberte entendido bien. No se le solicita cada enlace (la mayoría debería simplemente abrir la página enlazada en su navegador), ¿verdad? Esto solo debería suceder para los objetivos que el navegador no puede manejar por sí mismo, y luego puede configurar la aplicación predeterminada para que maneje ese tipo mimo , independientemente del dominio/sitio web/página de donde proviene. Básicamente, está diciendo "Abre archivos MP3 siempre con [mi reproductor], no me vuelvas a pedir que elija", por ejemplo.
@Izzy No es solo para objetivos que el navegador no puede manejar solo: es para cualquier URL donde más de una aplicación pueda manejarlo. Los enlaces de YouTube son el ejemplo habitual. Para los enlaces web, generalmente es la URL en lugar del tipo MIME, porque el navegador no reconoce el tipo MIME hasta que sigue el enlace.
Buen ejemplo, ¡tienes toda la razón! Simplemente no puedo recordar que eso suceda para los enlaces "normales" ( text/html) cuando hay varios navegadores disponibles, ¿entonces eso parece ser una excepción de alguna manera?

Respuestas (1)

Respuesta corta: sí, es para todos los enlaces de Google Maps.

La respuesta larga es que el mecanismo de intención de Android (que es la forma en que Android decide qué aplicación iniciar) puede usar diferentes partes de la URL para hacer coincidir la aplicación. La aplicación puede registrarse con Android para manejar:

  • un esquema URI particular, comomarket://
  • un dominio particular, comoyoutube.com
  • rutas dentro del dominio que coinciden con un filtro en particular, como/users/*

Las aplicaciones también pueden filtrar otras cosas que no son relevantes para hacer clic en un enlace, como diferentes acciones (por ejemplo, compartir) o diferentes tipos de MIME. Una aplicación puede tener más de un filtro y un filtro puede coincidir con cualquier combinación de las cosas anteriores. Por ejemplo, una aplicación de YouTube puede tener un filtro que coincida cuando se cumplan todas estas condiciones:

  • el esquema es http://ohttps://
  • el dominio esyoutube.com
  • el camino coincidewatch?v=*

y otra que coincida cuando se cumplan todas estas condiciones:

  • el esquema es http://ohttps://
  • el dominio es youtu.be(el dominio para URL cortas)

En este caso, hay dos valores predeterminados diferentes para configurar: la primera vez que haga clic en un enlace http://www.youtube.com/watch?v=DJRFaR71HfY, se establecerá el valor predeterminado para ese tipo de enlace. Luego, si luego hace clic en un http://youtu.be/DJRFaR71HfY, le preguntará por segunda vez, porque eso cuenta como un tipo diferente de enlace.

En el caso de Google Maps, hay varios tipos diferentes de enlaces que puede manejar (así como otros filtros de intenciones que no son relevantes para los enlaces):

  • geo://*
  • latitude://*
  • http://maps.google.tld/o https://maps.google.tld/(sin nada después de /), por cada TLD que tiene Google (google.com, google.fr, etc.)
  • http://maps.google.tld/maps*ohttps://maps.google.tld/maps*
  • http://mapy.google.pl/o https://mapy.google.pl/("mapy" en polaco significa "mapas")
  • http://mapy.google.pl/maps*ohttps://mapy.googl.pl/maps*
  • http://local.google.com/ohttps://local.google.com/
  • http://local.google.com/maps*ohttps://local.google.com/maps*
  • http://m.google.com/latitudeohttps://m.google.com/latitude
  • http://www.google.com/latitudeohttps://www.google.com/latitude
  • http://m.google.com/u/m/*ohttps://m.google.com/u/m/*

Cada una de esas líneas cuenta como un tipo diferente de enlace, por lo que Android volverá a preguntar. Además, todos excepto el primero tienen dos entradas separadas: una para abrir o explorar un enlace de la manera habitual y otra para escanear una etiqueta NFC (o recibir mediante Android Beam) un enlace coincidente. Nuevamente, esas dos cosas cuentan como enlaces diferentes a los efectos de establecer los valores predeterminados.


Para obtener esta información de la aplicación Google Maps, utilicé la aplicación PackageExplorer . La información que le brinda requiere cierto conocimiento para interpretarla: puede encontrar útil la guía de la API de intención de Android para desarrolladores .

¡Gracias por la completa información, Dan! ¿Tiene alguna sugerencia para administrar o mostrar este nivel de detalle fácilmente en el teléfono? He visto un asp llamado Default Manager, pero según las revisiones que he visto, no parece ser una solución viable.
@Kurt, sugeriría que no se moleste. A menos que esté escribiendo su propia aplicación o algo así como un script de Tasker que necesita interoperar con esta aplicación específica, es más fácil dejar que el sistema funcione según lo diseñado. Aun así, actualicé mi respuesta para agregar esta información.
¿Tiene un enlace alternativo para PackageExplorer? El actual está muerto.