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ü:
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
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
- "Sharer.php no longer allows you to customize."
- "You need to use Facebook Android SDK or Easy Facebook Android SDK to share."
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:
Paylaşım ACTİON_SEND üzerinden Android...
Nasıl bir Niyet kullanarak bir Android...
Android bir niyet ile başlatıyoruz Goo...
Kullanarak başka bir faaliyet gösterme...
KitKat verir farklı Android Galeri Niy...