Detectar el compartidor utilizado para compartir contenido

En la aplicación en la que estoy trabajando, necesito saber qué es "ACTION_SEND sharer" (Twitter, Facebook, SMS, Email …) que el usuario utiliza para compartir un contenido para registrarlo con fines estadísticos. ¿Hay alguna forma de hacer eso?

Tengo algunas ideas, una de ellas es modificar el objetivo de los partícipes de apuntar a un destinatario que recibiría el participante escogido, hacer lo que necesitamos con estos datos y luego invocar una intención final para el participante objetivo (Twitter, Facebook, SMS, correo electrónico …). Para este paso final, supongo que necesito saber la Acción de acción de cada aplicación de destino.

Saludos

UPDATE1

Para ilustrar, comparto el método que estoy usando actualmente para compartir un contenido, personalizando los extras de Intent en función del participante de destino:

private void shareItem(String title, String link) { // Standard message to send String msg = title + " " + link; Intent share = new Intent(Intent.ACTION_SEND); share.setType("text/plain"); List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(share, 0); if (!resInfo.isEmpty()) { List<Intent> targetedShareIntents = new ArrayList<Intent>(); Intent targetedShareIntent = null; for (ResolveInfo resolveInfo : resInfo) { String packageName = resolveInfo.activityInfo.packageName; targetedShareIntent = new Intent(android.content.Intent.ACTION_SEND); targetedShareIntent.setType("text/plain"); // Find twitter: com.twitter.android... if ("com.twitter.android".equals(packageName)) { targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, msg); } else if ("com.google.android.gm".equals(packageName)) { targetedShareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, title); targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, Uri.encode(title + "\r\n" + link)); } else if ("com.android.email".equals(packageName)) { targetedShareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, title); targetedShareIntent.putExtra(android.content.Intent.EXTRA_TEXT, Uri.encode(title + "\n" + link)); } else { // Rest of Apps targetedShareIntent.putExtra( android.content.Intent.EXTRA_TEXT, msg); } targetedShareIntent.setPackage(packageName); targetedShareIntents.add(targetedShareIntent); } Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), getResources().getString(R.string.share)); chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[] {})); startActivityForResult(chooserIntent, 0); } } 

Resuelto

Siga las indicaciones en este enlace: http://goo.gl/hf8Kg

¿Hay alguna forma de hacer eso?

Usted puede exhibir su propio diálogo del selector, por medio de PackageManager y de queryIntentActivities() .

  • Intención de Android Compartir mediante url de imagen externa
  • Compartir archivos pdf a través de mi aplicación en android
  • ¿Cómo compartir un enlace a Facebook sin la aplicación facebook instalada?
  • ¿Cómo forzar Share Intent a abrir una aplicación específica?
  • Android / Google Plus - No puedo compartir la imagen de mi proveedor de contenido
  • La aplicación no se registra en el menú "Compartir" como ACTION_SEND intent handler
  • Filtro de intenciones sólo para archivos
  • El diálogo compartido no funciona
  • Compartir Bitmap () en android para twitter, facebook, correo
  • Android ¿Cómo enviar texto e imágenes o cualquier objeto con intención?
  • Actividad Resultado en shareIntent
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.