Convierta su aplicación de Android en un objetivo para compartir. Obtenga datos simples de otras aplicaciones con Hilt and Compose | de Nikita Grishko | enero 2023

Para comprender mejor la función de compartir, definamos su caso de uso. Por ejemplo, si está desarrollando una aplicación de redes sociales, es posible que desee brindar la capacidad de compartir texto o imágenes. De hecho, hay muchos más usos para esta funcionalidad. Casi todos los mensajeros, todas las redes sociales e incluso las aplicaciones simples para tomar notas usan esta función. Para una aplicación que no es de composición, hay una guía bastante básica en la documentación oficial de Android, pero descubrí que no es exactamente lo mismo para las aplicaciones de composición. Entonces, aprendamos cómo hacerlo paso a paso. Primero, analicemos qué tecnologías y bibliotecas usaremos. Para simplificar este artículo, asumiré que la mayoría de ustedes están familiarizados con Compose y todas las demás herramientas modernas. Si no es así, recomiendo encarecidamente echarles un vistazo.

  1. Jetpack Compose es nuestro conjunto de herramientas de interfaz de usuario.
  2. Compose Navigation para navegar entre componibles mientras aprovecha la infraestructura y las capacidades del componente de navegación.
  3. Hilt es nuestro marco DI. Saber cómo integrar Hilt con Jetpack Compose también es importante aquí

En esta lista, Hilt es un componente opcional, pero te hará la vida mucho más fácil, por lo que recomiendo usarlo.Foto de Myriam Jessier en UnsplashPrimero, estamos actualizando nuestro manifiesto. Para marcar nuestra aplicación como objetivo compartido, debemos eliminar la sección indicar para nuestra actividad. Al especificar la sección de filtro de intenciones para nuestra actividad, le estamos diciendo al sistema que estamos listos para procesar la intención con los parámetros especificados. Entonces, en nuestro caso, estos parámetros son:Esta es la acción predeterminada utilizada para compartir algunos datos.Aquí le decimos al sistema que podemos procesar cualquier dato de texto.Y esto es para recibir una imagen. Para obtener una descripción más detallada, consulte la guía oficial. Ahora, si desea iniciar su aplicación y luego compartir algo, su aplicación debería aparecer en la hoja para compartir de Android. Ahora es el momento de actualizar nuestro gráfico de navegación, ya que probablemente queramos mostrar una pantalla específica que pueda manejar datos divididos. Su gráfico de navegación debería verse así: Bastante simple, ¿verdad? Al igual que los enlaces profundos normales, damos la lista de navDeepLink{} . Pero en lugar de uriPattern, especificamos action y mimeType que coinciden con nuestro filtro de intenciones en el manifiesto. La siguiente pregunta es ¿cómo puedo acceder a los datos compartidos? Vamos a revisar. Y, por supuesto, colocamos nuestro ViewModel en Composable: nuestro Intent ya está disponible para nuestro ViewModel a través de SavedStateHandle sin ningún trabajo adicional. Para acceder a ella debemos utilizar la tecla NavController.KEY_DEEP_LINK_INTENT. Hilt hará toda la magia por nosotros. El paso final es obtener los datos de la intención. Así que implementemos nuestra función Intent.parseSharedContent(). Como puede ver en esta sección de código, para acceder a los datos de texto, debe usar el siguiente método: val textContent:String? = getStringExtra(Intent.EXTRA_TEXT)Y para acceder a los datos de la imagen, debe usar: val imageContent: Uri? = getParcelableExtra(Intent.EXTRA_STREAM) como? uri¡Y eso es!Esta función se implementó junto con muchas otras en mi proyecto de código abierto. Así que asegúrese de revisar el repositorio y gracias por leer.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.