2013-02-21 11 views
27

için resim yazısı eklemek çok sınırlı, şimdiye kadar gördüğüm kadarıyla. Kullanıcı bir resim düzenleme izni vermek ve o Gönder tıkladığında: My senaryo basittir 10 Android için belirli bir kullanıcı aç ve uploaded image

Intent share = new Intent(Intent.ACTION_SEND); 
share.setType("image/jpeg"); 

Sonra queryIntentActivities() ile ben Instagram yüklü olup olmadığını görmek için arama. o benim resmin yolunu göndermek ise yüklenmesine:

share.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///" + path to myfile.png")); 
share.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name); 
share.putExtra(Intent.EXTRA_SUBJECT, "Sample subject"); 
share.putExtra(Intent.EXTRA_TEXT, "Sample text"); 
share.putExtra(Intent.EXTRA_TITLE, "Sample title"); 

sonucu: görüntü (Giriş yaptım ediyorsam tabii ki) Instagram uygulamasını kullanarak yüklenir ama ekleyemezsiniz bir Altyazı. putExtra'un hiçbirinin bir etkisi yoktur. Yani, niyet parametresi olarak bir başlık eklemek için herhangi bir yolu var mı?

Ve diğer soru, Instagram uygulamasını belirli bir kullanıcı adıyla doldurmak mümkün mü?

+0

Merhaba @Alin altyazı sorununa bir çözüm buldunuz mu? – Abdullah

+0

Bu http://stackoverflow.com/a/14954551/926598 – mattlaabs

+3

'u deneyin, bu işlevselliği kullanılabilir ve herkese açık hale getirmeniz gerekir. –

cevap

8

Instagram'ın Android Uygulaması EXTRA_TEXT, EXTRA_SUBJECT ve EXTRA_TITLE öğelerini göz ardı ediyormuş gibi görünüyor, bu nedenle resim yüklerken resim yazısı eklemek mümkün görünmüyor. Bu arada, her durumda o ekstraları göz ardı edip etmediğini kontrol etmek için farklı yaklaşımları deneyebilirsiniz:

Seçenek # 1: MIME türünü değiştirme.

MIME türünü "image/jpeg" olarak ayarlıyorsunuz. Uygulamalarının bu ekleri göz ardı etmediğini kontrol etmek için "image/" veya "/*" kullanmayı deneyin.

share.setType("image/*"); 

veya

share.setType("*/*"); 

SEÇENEĞİ # 2:

Birden MIME türlerini (resim ve metin) gönderiyor gibi, belki onların uygulamalarını ACTION_SEND_MULTIPLE yerine ACTION_SEND ait bekliyor.

Intent share = new Intent(Intent.ACTION_SEND_MULTIPLE); 

SEÇENEĞİ # 3: Kullanım MediaStore.Images.Media.insertImage(ContentResolver cr, String imagePath, String name, String description) fonksiyonu:

Intent share = new Intent(Intent.ACTION_SEND); 
share.putExtra(Intent.EXTRA_STREAM, Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), "file:///" + path to myfile.png", "Sample title", "Sample description"))); 
share.setType("image/jpeg"); 
share.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name); 

SEÇENEĞİ # 4:

Ve geri gelip bize cevaplarını vermeyi unutma!

+0

Bu yanıta herhangi bir yanıt gelmediğinden, - Türü \ "/ \ * olarak ayarlamak beni doğrudan haber beslemesine gönderir - Bir uygulamanın Instagram uygulamasına ulaşmanın bir kaç yolu olduğu anlaşılıyor, ancak bir altyazı eklemenin yolu. Lütfen yanılıyorsam beni düzeltin ve lütfen bir altyazı eklemek için herhangi bir çözüm gönderin. – kentrh

4

Instagram, uygulamasının bir altyazı eklemek için EXTRA_TEXT kabul etmek için uygulamasını güncellediğini belirtti. kullanıcı Instagram güncellenmiş bir sürümünü (1 Temmuz sonra 2014 sürümü veya) varsa bir görüntü gönderebilir ve aşağıdaki kodla yazısı ekleyebilirsiniz: eski sürümleri ile

Intent instagram = new Intent(android.content.Intent.ACTION_SEND); 
instagram.setType("image/*"); 
instagram.putExtra(Intent.EXTRA_STREAM, [URI of photo]); 
instagram.putExtra(Intent.EXTRA_TEXT, [Text of caption]); 
instagram.setPackage(instagramPackageName); 
startActivity(instagram); 

Kullanıcılar yine görüntüyü alacak, ancak altyazı önceden doldurulmamış.

Bu kod, daha önceden yetki aktarımını yaptığınızı varsaymaktadır.

+0

Bunu paylaştığınız için teşekkürler, nihayet bu seçeneği ekledikleri harika. – Alin

+1

Bu seçeneği kaldırmış gibi görünüyorlar ... – Alin

+3

Altyazıyı bir önceki hafta ayarlamak için seçeneği kaldırdıklarını onaylayabilirim. EXTRA_TEXT dokümantasyondan kayboldu: https://instagram.com/developer/mobile-sharing/android-intents/ – Leito