SORU
25 EYLÜL 2011, Pazar


Android ve Facebook paylaşım niyet

Bir Android uygulaması geliştiriyorum ve uygulama içinde Android payı niyet kullanarak app kullanıcı durumu güncelleme nasıl olduğunu çok merak ediyorum.

Bu yeterince kolay yapmak için görünen o ki Facebook SDK gözden geçiriyor, ancak kullanıcı düzenli Paylaşım Niyet up pencerede açılır) bunu yapmak için izin için sabırsızlanıyorum? burada görüldü:

pop up

Her zamanki paylaşmak niyet kod, ancak bu artık Facebook için çalışacak gibi görünüyor denedim.

public void invokeShare(Activity activity, String quote, String credit) {
    Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
    shareIntent.setType("text/plain");
    shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, activity.getString(R.string.share_subject));
    shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Example text");    

    activity.startActivity(Intent.createChooser(shareIntent, activity.getString(R.string.share_title)));
}

GÜNCELLEME: Daha araştırma yaptıktan sonra, henüz çözülecek olan Facebook uygulama ile ilgili bir hata var gibi görünüyor! (facebook bug) ortalama süre İçin sadece negatif katlanmak zorunda kalacağım gibi görünüyor "Paylaşım çalışmıyor!!!" yorumlar. Şerefe Facebook :*(

CEVAP
17 Ocak 2014, Cuma


Artık Facebook (2014) paylaşım ekranı özelleştirmek için, sadece sharer.php URL açılış ise önemli ya da daha özel şekillerde Android niyet kullanarak sağlar anlaşılan. Cevap: bu örnek için bkz

Her neyse, düz Niyet kullanaraksanaolabilirhala bir URL, ama o herhangi bir varsayılan metin paylaşın, billynomates commented gibi. (Ayrıca, eğer var URL paylaşmak için, sadece başlatılması Facebook uygulaması ile boş "Yazı Yazma" (yani durum güncelleme) iletişim aynı derecede kolay; kod aşağıda ama dışarıda bırakın EXTRA_TEXT.)

İşte bunu bulduğum en iyi çözümdeğilherhangi bir Facebook SDK kullanarak içerir.

Bu kodaçılır resmi Facebook uygulaması doğrudanyüklü, ve aksi takdirde, tekrar bir tarayıcıda sharer.php açılışına denk gelirse. (Bu soru diğer çözümleri en uygun değil a huge "Complete action using…" dialog hiç bir sorunum yok.)

String urlToShare = "http://stackoverflow.com/questions/7545254";
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
// intent.putExtra(Intent.EXTRA_SUBJECT, "Foo bar"); // NB: has no effect!
intent.putExtra(Intent.EXTRA_TEXT, urlToShare);

// See if official Facebook app is found
boolean facebookAppFound = false;
List<ResolveInfo> matches = getPackageManager().queryIntentActivities(intent, 0);
for (ResolveInfo info : matches) {
    if (info.activityInfo.packageName.toLowerCase().startsWith("com.facebook.katana")) {
        intent.setPackage(info.activityInfo.packageName);
        facebookAppFound = true;
        break;
    }
}

// As fallback, launch sharer.php in a browser
if (!facebookAppFound) {
    String sharerUrl = "https://www.facebook.com/sharer/sharer.php?u="   urlToShare;
    intent = new Intent(Intent.ACTION_VIEW, Uri.parse(sharerUrl));
}

startActivity(intent);

(com.facebook.katana paket adı ile ilgili olarak,*.* 13)

Sonuç benim Nexus 7 (Android 4.4) Facebook uygulaması yüklü olan bu gibi görünüyor:

enter image description here

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010
  • Theodore Leaf

    Theodore Lea

    29 AĞUSTOS 2006