2010-12-13 25 views
13

Kullanıcının telefonundaki kullanılabilir uygulamaları kullanarak bazı metni paylaşmak için böyle bir şey kullanıyorum.Android paylaşım amacı seçici

public void share(String subject,String text) { 
    final Intent intent = new Intent(Intent.ACTION_SEND); 

    intent.setType("text/plain"); 
    intent.putExtra(Intent.EXTRA_SUBJECT, subject); 
    intent.putExtra(Intent.EXTRA_TEXT, text); 

    startActivity(Intent.createChooser(intent, getString(R.string.share))); 
} 

Benim asıl sorun kullanıcı (kısa URL'ler VS bağlı resimler içeren tam metni ile kısa versiyon) Twitter'a yerine örneğin e-posta seçerse farklı bir metin istiyorum olmasıdır.

Kullanıcının hangi uygulamayı kullanmaya karar verdiğini nasıl öğrenemez?

+0

gumbercules burada fantastik bir cevabı vardır: Yani http://stackoverflow.com/questions/5734678/custom-filtering-of-intent-chooser-based-on-installed-android-package-name – hitch45

cevap

8

Metni, oluşturucuyu createChooser ile sisteme aktardıktan sonra, elinizin dışında bırakarak, metni bundan sonra değiştirmenin bir yolu yoktur.

+0

Kendi seçicimi kurmak zorunda mıyım? : -/Clumsy API tasarımı öyle değil mi? Bu durumda, örneğin Twitter veya Facebook için özel olarak niyeti nasıl oluşturacağınıza dair örnek kodlar. –

+2

söz konusu uygulama tweets göndermek, durum güncellemesi, vb. Için kendi genel API'sini yayınlamış olmalıydı. Twitdroid bunu yaptığını bildiğim tek uygulama ve diğerleri de onun sözleşmesini takip etmiyor. Şahsen bu tasarımı önemsemiyorum, kolaylığın ticarete değer olduğunu düşünüyorum. – schwiz

+0

Gerçekten uygun, ancak mesaj uzunluğu üzerindeki kısıtlamalara uyum sağlamak oldukça zor. Kullanıcıyı, şeyi kısa veya uzun bir metin olarak paylaşmak isteyip istemediğini soran bir iletişim kutusu ekleyebilirim. İhtiyacınız olanı elde etmek için tıklama sayısı kadar değil, şimdiye kadar düşünebildiğim tek yol. Giriş için teşekkürler. –

1
Intent intent = new Intent(Intent.ACTION_SEND); 

intent.setType("text/plain"); 
intent.putExtra(Intent.EXTRA_SUBJECT, subject); 
intent.putExtra(Intent.EXTRA_TEXT, textWhichYouWantToShare); 

startActivity(Intent.createChooser(intent, getString(R.string.share))); 
İlgili konular