Generalidades

Descubra qué aplicación se utilizó para compartir el contenido de sus aplicaciones | de Kumar Bibek | Mayo de 2021

Casi todas las aplicaciones móviles comparten datos con otras aplicaciones. Por ejemplo, es posible que su aplicación desee compartir URL, imágenes, videos o contenido de texto con otras aplicaciones como Facebook, Twitter, Gmail, etc.

Hacer esto es bastante fácil. Tu creas uno intención con la acción como ACTION_SENDIngrese los datos que desea compartir. Luego crea una intención de selección y pasa esa intención a la Iniciar actividad () Método.

Algo como esto es la forma recomendada:

val intent = Intent().apply 
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_TEXT, "This is my text to send.")
type = "text/plain"
val share = Intent.createChooser(intent, null)
startActivity(share)

Que traerá tup La “Hoja de recursos compartidos de Android”, que muestra una lista de aplicaciones que pueden procesar el tipo de datos que ha proporcionado.

Pero, ¿y si quieres saber qué aplicación ha elegido el usuario para compartir tu contenido? Estos pueden ser datos analíticos de los que quizás desee realizar un seguimiento para poder crear sus campañas de marketing.

La hoja de recursos compartidos de Android permite esto al proporcionar la ComponentName de los objetivos en los que los usuarios hacen clic IntentSender.

Puedes crear uno Pendiente Intención a un Radio receptor Esto se activa cuando un usuario realiza una selección en la hoja compartida.

Entonces su código se ve así:

val intent = Intent().apply 
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_TEXT, "This is my text to send.")
type = "text/plain"

val

pi = PendingIntent.getBroadcast(
activity, 100,
Intent(activity, ShareIntentReceiver::class.java),
PendingIntent.FLAG_UPDATE_CURRENT
)

val share = Intent.createChooser(intent, null, pi.intentSender)
startActivity(share)

El código de ShareIntentReceiver:

class ShareIntentReceiver : BroadcastReceiver() 
override fun onReceive(context: Context?, intent: Intent?) 
val clickedComponent: ComponentName? = intent?.getParcelableExtra(EXTRA_CHOSEN_COMPONENT);
Log.i("ShareIntentReceiver", "Component name: $clickedComponent")

Y, por supuesto, debe registrar este receptor de transmisión en su archivo de manifiesto.

Cuando el usuario realiza una selección, el nombre del componente se envía en el método onReceive de su receptor de transmisión. Ahora puede registrar esto en su servicio de análisis o enviarlo a su backend para su posterior análisis / procesamiento.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba