2011-11-28 9 views
22

Chcę dać użytkownikowi możliwość udostępnienia obrazu i tekstu za pomocą Twittera i Facebooka.Problemy z udostępnianiem połączonego tekstu i obrazu za pomocą SHARE INTENT na Twitterze

W rzeczywistości mój kod może uruchomić intencję udziału Androida, a jeśli użytkownik wybierze Facebooka, wszystko działa poprawnie, obraz jest dołączony, a tekst jest wyświetlany na korpusie nowego statusu.

Ale coś jest nie tak z Twitterem, jeśli tylko wszystko dobrze działa, obraz jest wykrywany przez twitter i automatycznie przesyłany do twipic, a następnie twitter umieszcza link obrazu na tweecie. Ale jeśli umieściłem obraz i tekst, twitter nie wykrywa obrazu i tylko umieszcza tekst na tweecie, obraz jest ignorowany. Co jest nie tak?

to mój kod:

Intent sharingIntent = new Intent(Intent.ACTION_SEND); 
Uri screenshotUri = Uri.parse("file:///sdcard/image.jpg"); 
sharingIntent.setType("image/*"); 
sharingIntent.putExtra(Intent.EXTRA_TEXT, "Body text of the new status"); 
sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri); 
startActivity(Intent.createChooser(sharingIntent, "Share image using")); 
+0

rzucić okiem na ten post: http://stackoverflow.com/questions/2077008/android-intent-for-twitter-application/9151983#9151983 – Derzu

Odpowiedz

14

określić typ MIME również dla tekstu. "text/plain" to rodzaj danych tekstowych MIME. Spróbuj użyć "*/*" jako MIME, możesz więc wysłać dowolny ogólny typ danych.

Spróbuj również zmienić ACTION_SEND na ACTION_SEND_MULTIPLE, która specjalizuje się w dostarczaniu wielu danych.

Więcej informacji o ACTION_SEND_MULTPLE i obsługi MIME typy:

http://developer.android.com/reference/android/content/Intent.html

+0

Próbowałem z */* i nie działałem. Nie mogę używać ACTION_SEND_MULTIPLE, ponieważ nie istnieje, przynajmniej na Androidzie 1.5. – NullPointerException

+1

Teraz próbowałem z ACTION_SEND_MULTIPLE i Androidem API 4, i to nie działa. – NullPointerException

+0

czy próbowałeś '" */* "'? –

22

Można jeszcze spróbować z ACTION_SEND, bez korzystania z ACTION_SEND_MULTIPLE.

ACTION_SEND_MULTIPLE spowodowało końca życie, kiedy próbuje stworzyć nowe zamiary za udostępnienie do Gmaila, G +, itp

ten pracował dla mnie idealny:

Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    Uri uri = Uri.parse("file:///sdcard/image.jpg"); 
    shareIntent.setType("*/*"); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, "Body text of the new status"); 
    shareIntent.putExtra(Intent.EXTRA_STREAM, uri); 
    return shareIntent; 
+0

jak zbudować uri? – Radu

+0

zobacz edytowaną odpowiedź – Paschalis

+1

@ Paschalis: próbuję twoich ebutów kiedy robię shre z facebookiem daje mi tosty jak ** "proszę załączyć tylko zdjęcia lub pojedyncze filmy" ** jakikolwiek pomysł jak mogę to rozwiązać? –

Powiązane problemy