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.
- ¿Cómo compartir la ubicación como whatsapp?
- ¿Cómo subir videos a youtube en android?
- Intent.ACTION_VIEW para la imagen de Android
- Android: no obtiene el texto adecuado cuando se comparte con aplicaciones incorporadas
- La devolución de llamada después de completar la intención de compartir
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
- Android intención action_send opción sólo una vez
- Propuesta de participación de Android para facebook- compartir texto y enlace
- ¿Cómo compartir el texto de WhatsApp desde mi aplicación?
- Android Share Intent formato de archivo no compatible
- ¿Cómo activar el botón "Compartir" en la aplicación Android?
- El uso de la intención de compartir de una manera "fluida"
- Android: compartir de forma fiable una imagen de los activos a través de mensajería, G +, twitter, facebook?
- ¿Cómo puedo añadir mi aplicación de Android al diálogo compartido?
¿Hay alguna forma de hacer eso?
Usted puede exhibir su propio diálogo del selector, por medio de PackageManager
y de queryIntentActivities()
.
- Phonegap, jQuery Mobile, Android, barra de herramientas no fija después de una entrada de texto
- ListView selector de filas en el API nivel 10?