2012-11-22 12 views
5

Özel mesajımı WhatsApp, twitter, Facebook ve GMail gibi sosyal ağlarda paylaşmak için intent ve Action.SEND kullanıyorum. Gmail ve Facebook dışındaki diğer uygulamalarda her şey yolunda! Facebook'ta da bir şeyler paylaşmak için kodumu nasıl özelleştirebilirim? Facebook SDK'yı kullanarak sorun yaşamadan Facebook'ta paylaşıyorum ama bunu bir niyetle yapmak istiyorum.FaceBook Android'de İçeriği Paylaşma

Android'de Niyet kullanma
Intent sendIntent = new Intent(); 
sendIntent.setAction(Intent.ACTION_SEND); 
sendIntent.putExtra(Intent.EXTRA_TEXT, knowTitle+"Read the full article via MomsApp by EnfaMama A+ at http://meadjohnsonasia.com.my/mobileapp"); 

sendIntent.putExtra(Intent.EXTRA_SUBJECT, "I just read "+knowTitle); 
sendIntent.setType("*/*"); 
startActivity(Intent.createChooser(sendIntent, "Share Your Favorite Article")); 

cevap

5

Yaptığım şey aslında aslında hedeflenenlerin hedefini yakalamaktı, bunu eylemproviderini kullanarak yapabilirsiniz. Bir onclick'in amacı başlatan bir öğe oluşturduğunuzu varsayalım. Bunu yapabilmek için, bir eylemproviderini başlatabilirsiniz. Bu actionprovider, farklı bir şekilde işlemek istediğiniz (veya tümüyle ^^) herhangi bir amacı durdurmak için setOnShareTargetSelectedListener'a sahip olabilir. Actionprovider'ınızı nasıl yapılandıracağınız için aşağıdaki kodu inceleyin. facebook seçilir zaman

actionProvider.setShareIntent(createShareIntent()); 
    actionProvider.setOnShareTargetSelectedListener(new OnShareTargetSelectedListener(){ 

     @Override 
     public boolean onShareTargetSelected(ShareActionProvider source, 
       Intent intent) { 
      if ("com.facebook.katana".equals(intent.getComponent().getPackageName()) && mfacebooksharer != null) { 
       mfacebooksharer.shareStatus(subject, text); 
        return true; 
       } 
       return false; 
     } 

    }); 

, ben niyet işlemek ve facebook API takip etmek benim mfacebooksharer kullanın. Tabi ki, bu eylemcinin bir niyete ihtiyacı vardır. (Tıpkı bir niyetle çalışmak istediğin gibi). Amacı oluşturmak için aşağıdaki yöntemi kullanıyorum.

private Intent createShareIntent() { 
     intentsetter.setIntentleave(true); 
     Intent shareIntent = new Intent(Intent.ACTION_SEND); 
     shareIntent.setType("text/plain"); 
     shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
     shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, text);   
     return shareIntent; 
    } 
+0

Bu yalnızca android 4.0'da çalışır – Giorgi

1

, metin olmadan sadece bir link paylaşabilir:

Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setType("text/plain"); 
intent.putExtra(Intent.EXTRA_TEXT, "http://www.google.ca"); 
startActivity(Intent.createChooser(intent, "Share with")); 

O çalışacağız

bu kullandığım budur. Metin ve bağlantıyı paylaşmak isterseniz, Android için Facebook SDK kullanmak zorunda: Facebook'un Platformu Politikalarımız uyarınca https://github.com/facebook/facebook-android-sdk

4

, sen Intent.EXTRA_TEXT kullanarak hisse iletişim önceden doldurmak mümkün değil. Genellikle bir hata olduğu düşünülür, ancak here ve ayrıca here dosyalanmış bir Hata Raporuna göre, Facebook durumun böyle olmadığını açıkça belirtmektedir (bu bir hata değildir).

Sen Platformu Politikası IV.2 onların Platform Policies özellikle Platformu Politikası IV.2'de

Alıntı ilgili daha fazla bilgi edinebilirsiniz:

Sen alanlardan herhangi önceden doldurmak olmamalıdır kullanıcı, içeriği daha önce iş akışını manuel olarak oluşturmadığı sürece, aşağıdaki ürünüyle ilişkili: Akış öyküleri (user_message parametresi için Facebook.streamPublish ve FB.Connect.st reamPublish ve stream.publish için parametresi), Fotoğraflar (resim yazısı), Videolar (açıklama), Notlar (başlık ve içerik), Bağlantılar (yorum) ve Jabber/XMPP.

Bu alanlar, kullanıcıların kendilerini ifade etmelerini amaçlar. Bu alanların doldurulması, kullanıcı sesinin gerçekliğini erozyona uğratır.

tek yolu paylaşabilirsiniz App Yayınınızdaki göre, başarıyla zaten edebiliyoruz Facebook SDK, entegre gereğidir hikayeleri. Tek seçenek mevcut (maalesef).

+0

Tamam ama kullanıcının facebook SDK'yı kullanarak özel facebook paylaşımına yönlendirmesini istiyorum, örneğin Gmail'de değil, facebook'ta tıklanan kullanıcıyı nasıl algılayabilirim? sonra facebook ı ne istediğimi kolayca yapabilirse –

+0

@MahdiGiveie: Kullanıcının uygulamanızı paylaşabilecekleri uygulamalardan seçmesini mi istiyorsunuz? –

+0

benim uygulamam !! Kullanıcıların Facebook'ta tıklamaları, kullanıcı listesinden özel Facebook paylaşımım ile doğrudan paylaşabileceği bir kullanıcı istiyorum! Benim sorunum, bu kullanıcının listeden facebook'u nasıl tıkladığını nasıl tespit edebilirim? –

İlgili konular