Crear un "Tweet este botón" para compartir información sólo en Twitter no es tan fácil

Para mi aplicación, muestro un twitterfeed dentro de la pantalla principal. Lo que es cool es que la gente puede seguir la información de Twitter sobre la compañía de tren de mi país sin tener una cuenta de Twitter.

Introduzca aquí la descripción de la imagen

Lo que me gustaría hacer es reaccionar cuando el usuario haga clic en un elemento y luego le permiten responder / RT. Si el usuario no tiene una aplicación de twitter instalada, entonces no debería pasar nada (tal vez un brindis)

He intentado esta acción:

Intent tweetIntent = new Intent(Intent.ACTION_SEND); tweetIntent.putExtra(Intent.EXTRA_TEXT, "Test; please ignore"); tweetIntent.setType("application/twitter"); 

Pero parecen abrir también correo electrónico, Gmail y otras aplicaciones inútiles.

¿Hay una manera de filtrar esa lista y mantener sólo las aplicaciones de Twitter (Twitter, Twydroid, Plume, Twicca, etc.)

Muchas gracias por cualquier sugerencia.

Editar: Mi solución actual, que no me gusta en absoluto:

 public Intent findTwitterClient() { final String[] twitterApps = { // package // name "com.twitter.android", // official "com.levelup.touiteur", // Plume "com.twidroid", // twidroyd "com.handmark.tweetcaster", // "com.thedeck.android" // }; Intent tweetIntent = new Intent(); tweetIntent.setType("text/plain"); final PackageManager packageManager = getPackageManager(); List<resolveinfo> list = packageManager.queryIntentActivities( tweetIntent, PackageManager.MATCH_DEFAULT_ONLY); for (int i = 0; i <twitterApps.length; i++) { for (ResolveInfo resolveInfo : list) { String p = resolveInfo.activityInfo.packageName; if (p != null && p.startsWith(twitterApps[i])) { tweetIntent.setPackage(p); return tweetIntent; } } } return null; } 

No hay API oficial de twitter en android, te sugiero que implementes tu propio con algo como twitter4j.

http://twitter4j.org/en/index.html

Usted debe saber el ID de usuario y tweet ID, etc, etc, cuando se hace clic, entonces usted puede utilizar twitter4j como este:

 Twitter twitter = new TwitterFactory().getInstance(); twitter.updateStatus(new StatusUpdate("@USERNAME").inReplyToStatusId(STATUSID)); 

No estoy seguro si ya estás usando twitter4j o no, si no te sugiero que lo hagas como consultando por tweets es muy fácil.

También necesitas autenticación dentro de tu aplicación si usas twitter4j, es bastante simple pero no entraré en él ya que tendrás que abrir una ventana de autenticación, etc. Hay un ejemplo en http://twitter4j.org/en/ Code-examples.html


Si no quieres ir a la ruta twitter4j, por desgracia tu manera es la única manera que conozco. Simplemente utilice el gestor de paquetes para comprobar si existen y, de lo contrario, notifique al usuario.

  • ¿Cómo agregar el botón de compartir en android?
  • Cómo publicar un mensaje en la pared de twitter con twitter integrar la aplicación de Android
  • Adición de twitter-kit al proyecto de estudio de Android
  • ClassNotFoundException: twitter4j.conf.PropertyConfigurationFactory: Android
  • Android ¿Intención de seguir al usuario de Twitter?
  • Barra de acción de Android como muestra de twitter
  • Problema con Twitter PostActivity
  • ¿Cómo cerrar la actividad del navegador al volver a la actividad de llamada?
  • Twitter4j API no está redirigiendo a la aplicación en la pulsación del botón de nuevo en android
  • Subir vídeo en twitter
  • Cómo compartir la imagen http directamente a twitter en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.