3 votos

¿Cómo puedo saber si una aplicación puede ser un objetivo de "enlace"?

Tengo un par de aplicaciones bíblicas en mi teléfono. A veces, otras aplicaciones enlazan con un versículo bíblico, pero normalmente incorporan un visor bíblico en la aplicación o sólo funcionan con una aplicación concreta.

Me gustaría que me pidieran una aplicación de la misma manera que se pide un navegador al hacer clic en un enlace. Pero esto no ocurre. ¿Por qué?

¿Es culpa de:

  1. La aplicación que genera el enlace;
  2. La(s) aplicación(es) de la Biblia que he instalado;
  3. El propio Android; o
  4. ¿Una combinación de las anteriores?

Estoy ejecutando Android 4.0.1 (MIUI) en un HTC/Google Nexus One.

10voto

Izzy Puntos 45544

Corto y puesto en términos legos:

No hay un estándar definido sobre cómo pasar esta información entre las aplicaciones, por lo que no hay dos aplicaciones que puedan interactuar de la manera deseada.

Más largo y con información más detallada:

El menú de selección de aplicaciones para, por ejemplo, un navegador o una pantalla de inicio sólo aparece cuando varias aplicaciones anuncian su disponibilidad para un determinado servicio, y sólo cuando se llama a este servicio (para decirlo en palabras sencillas; la variante más larga y técnica habla de intents y listerners). Mientras que los navegadores web y las pantallas de inicio son, de alguna manera, "servicios genéricos" que existen en todos los dispositivos Android, hay "intents" estándar definidos (véase, por ejemplo esta pregunta en stackoverflow para abrir una página en un navegador -- o esta pregunta aquí que probablemente lo explique aún mejor).

Mientras no exista la correspondiente intención (con un API para pasarle el capítulo:versículo específico a mostrar), su deseo no puede cumplirse. Además, los desarrolladores de aplicaciones deben implementar esto en sus aplicaciones antes de poder utilizarlo.

Hasta donde yo sé, no existe ni está implementada tal API - no puede existir ningún programa que actúe de acuerdo con sus deseos (excepto, por supuesto, que ambos sean del mismo desarrollador; si dos o más se pusieran de acuerdo en los términos de cómo manejar esto, eso ya significaría definir una API).

0 votos

Gracias por su detallada respuesta. Hay una cosa que aún no tengo clara: ¿Hay algún proceso formal que deba seguirse para establecer una API adecuada, o bastaría con que los desarrolladores de las aplicaciones correspondientes se pusieran simplemente de acuerdo sobre alguna API adecuada?

0 votos

En mi opinión, técnicamente ambos llegan al mismo fin. Si se toma, por ejemplo, aplicaciones con soporte para Tasker -- aquí Tasker estableció una API, y otros desarrolladores la utilizan. Esto funcionó principalmente debido a la popularidad de Tasker, supongo -- ¿quién sería el "punto central" en su caso, donde múltiples aplicaciones servirán a otras múltiples aplicaciones? Tal vez, si uno llega a tener una buena API, otros la usarán también. La forma más fácil para ellos sería utilizar la función "compartir con". Pero no soy desarrollador ;)

0voto

Arctiic Puntos 6

Además de la excelente respuesta de @Izzy, he tenido algunas observaciones propias a lo largo de los años:

  • Puede copiar una aplicación (a través de ADB o un gestor de archivos como X-plore ) a su escritorio y cambie la extensión a .zip (o en X-plore, puede hacer una pulsación larga y abrir directamente como .zip). Extraiga si es necesario, y busque un archivo llamado AndroidManifest.xml . Abra este archivo con su editor de texto preferido (yo uso Bloc de notas++ ), y verás un montón de texto. Por lo general, algunos (o incluso la mayoría) pueden estar ofuscados, pero generalmente habrá bloques de texto que son legibles para los humanos (puede que tenga que desplazarse hacia abajo). Si utilizó X-plore en su lugar, abra el archivo utilizando el editor de texto interno, y elija editar el contenido del texto; esto lanzará el editor en lugar del visor, lo que eliminará muchos caracteres de formato y hará que el contenido sea más legible. Entre los contenidos, observe que verá que se enumeran algunos intentos, así como diferentes banderas de permisos, etc. Esta es una forma de examinar más directamente las posibles llamadas de intención.

  • Otro método, que también permite recurrir a estos como atajos (siempre que sea posible, compatible y permisible), voy a citar mi propia respuesta de este puesto :

    1) Ve a G Play Market e instala Nova Launcher .
    2) Omitir toda la configuración e ir directamente a la pantalla de inicio con Nova como lanzador por defecto (ya que sólo estás probando la funcionalidad en este punto)
    3) Haz una pulsación larga en tu fondo y selecciona Widgets, luego desplázate hacia abajo hasta Nova Launcher y encuentra el widget "Actividad" (para mí es el segundo widget); haz una pulsación larga y luego arrástralo a un espacio vacío en la pantalla de inicio
    4) Una vez que sueltes el botón para establecer el widget, un mensaje superpuesto aparecerá y comenzará a cargarse. Dependiendo de tu dispositivo y del número de aplicaciones instaladas, esto puede tardar uno o dos minutos, así que no te alarmes. Una vez que termine de cargar, desplázate hacia abajo hasta tu aplicación y localiza el hilo de actividad que estás buscando y selecciónalo (puedes pulsar prolongadamente uno por uno para probar la función también, te devolverá al aviso de superposición anterior si el hilo no causó un bloqueo... si lo hace, tendrás que reiniciar desde el paso 3.
    ... NOTA: Estoy inscrito en la Beta, y tengo la versión Prime (de pago), así que no estoy seguro de si eso puede afectar a esta función específica o no. Es probable que pueda comprar para probar y solicitar el reembolso si es necesario.

  • Otra característica interesante de X-plore (no estoy seguro de si esto es universal a otras aplicaciones de exploradores de archivos también o no), puede intentar compartir cualquier archivo o entrada de la lista y optar por intentar open-as a) tipo MIME específico, por ejemplo, vídeo, imagen, documento, etc.; o b) open-as comodín (*), y ver todas las opciones posibles. Tenga en cuenta, sin embargo, que esto es técnicamente eludir los escenarios de uso previsto que los desarrolladores suelen anticipar, y a veces puede no funcionar donde debería o trabajar donde no debe (y en el caso de esto último, no me hago responsable de lo que pueda ocurrir). Por lo que he experimentado, si se añaden contenedores de archivos (por ejemplo, .rar) y/o acceso a archivos SMB a la mezcla, también pueden producirse comportamientos inesperados. Sólo para equilibrar las cosas, aquí hay un ejemplo de un caso de uso positivo: tener una aplicación de medios (por ejemplo, Jugador MX ) que no soporta de forma nativa una determinada extensión (por ejemplo .gif ) -- cuando se añade manualmente a través de la configuración, MX Player eliminará la entrada al actualizarla -- reproducirá el archivo con éxito a pesar de ello (NOTA: en este ejemplo, los decodificadores de vídeo HW y HW+ parecen no funcionar pero el SW sí).

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X