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

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.