2011-07-26 6 views
5

Dla mojej aplikacji wyświetlam twitterfeed wewnątrz głównego ekranu. Co jest fajne, to że ludzie mogą śledzić informacje o twitterze na temat firmy przewozowej mojego kraju bez posiadania konta na Twitterze.Tworzenie "Tweetuj ten przycisk" w celu udostępniania informacji tylko na Twitterze nie jest takie łatwe

enter image description here

Co chciałbym zrobić, to reakcję, gdy użytkownik kliknie na elemencie, a następnie pozwala mu odpowiadać/RT. Jeśli użytkownik nie zainstalowano aplikacji twitter, wtedy nic nie powinno się zdarzyć (może toast)

Próbowałem tę akcję:

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

Ale wydaje się otwierać również e-mail, Gmail i innych bezużytecznych aplikacji.

Czy istnieje sposób, aby filtrować tę listę i zachować tylko aplikacje Twitter (Twitter, Twydroid, smudze, Twicca, etc ..)

Dziękuję dużo za wszelkie sugestie.

Edit: Moje bieżące obejście, że mi się nie podoba na wszystkich:

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; 
    } 

Odpowiedz

1

Nie ma oficjalnego API Twittera w android, bardzo proponuję wdrożyć własną rękę z czymś twitter4j.

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

Powinieneś znać identyfikator użytkownika i ćwierkanie identyfikator, itp, itd. Po kliknięciu, a następnie można użyć twitter4j tak:

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

Nie jestem pewien, czy jesteś już używasz twitter4j lub nie, jeśli nie jesteś wysoce sugeruje, że robisz, jak wysyłanie zapytań o tweety jest bardzo łatwe.

Trzeba również uwierzytelnianie wewnątrz aplikacji, jeśli używasz twitter4j, jest to dość proste, ale nie będę się do niego, ponieważ trzeba wyskakujące okno uwierzytelniania, itp Jest przykładem na http://twitter4j.org/en/code-examples.html


Jeśli nie chcesz iść na trasę twitter4j, niestety twoja droga jest jedynym sposobem, jaki znam. Wystarczy skorzystać z menedżera pakietów, aby sprawdzić, czy istnieją i powiadomić użytkownika w inny sposób.

Powiązane problemy