Bunun iki kısmı vardır: iletişim uygulamalarının bir şeyleri paylaşabileceklerini söyleme mekanizması ve içerik barındıran uygulamaların paylaşma mekanizması. Onlarla birer birer ilgileneceğim, ama önce niyetler hakkında kısa bir not .
Intents
Niyet Android'de bir uygulamayı başlatmak için kullanılan budur. Kısayol veya Windows dosya ilişkilendirmesi gibi çalışabilir. Amaç, başlatılacak uygulamanın adını belirtebilir, ancak zorunlu değildir. Ayrıca, gerçekleştirilecek eylemi (örneğin, "ana etkinliğinizi açın", "bu URL'yi görüntüleyin", "bir takvim girişi oluşturun") ve üzerinde çalışacağı nesnenin MIME türünü (ör. Görüntülemek istediğiniz şey) belirtebilir. image / jpeg türündedir). Bazı işlem adları belirli bir uygulamaya özgüdür, ancak çoğu uygulamaların etkileşime girmesine izin vermek için Android tarafından standartlaştırılmıştır.
Amaç filtreleri ve iletişim uygulaması
Her uygulama, ne tür eylemler gerçekleştirebileceğini söylemek için amaç filtreleri belirtir . örneğin bir resim görüntüleyici uygulaması, MIME türünün "image / *" olduğu "bu URL'yi görüntüle" için bir niyet filtresi kaydeder; bir web tarayıcısı, URL düzeninin "http" veya "https" olduğu "bu URL'yi görüntüle" için bir niyet filtresi kaydeder. Bir şeyleri paylaşabilmek için, uygulama "gönderme" amacı için ya belirli bir türle (örneğin yalnızca fotoğrafları paylaşabilirse) ya da herhangi bir tür için bir amaç filtresi kaydeder.
İçerik uygulaması
Bazı içeriği paylaşmak isteyen uygulama, "paylaşma" işlemi ve paylaşılacak içeriği işaret eden bir URL ile bir niyet oluşturur. (Bu genellikle, alıcı uygulamaya içerik uygulamasının özel deposundaki dosyaya veya içerik uygulaması tarafından oluşturulan bir akışa geçici erişim sağlayan "geçici" bir URL'dir.) niyet. Ardından, bu amacı Android çerçevesine verir ve Android'den seçici iletişim kutusunu görüntülemesini ister . Android, amacı yüklü tüm uygulamalardaki amaç filtreleriyle karşılaştırır ve listeyi oluşturur ve kullanıcıya gösterir. Kullanıcı belirli bir uygulamayı seçtiğinde, Android bu uygulamayı başlatır ve niyetini iletir. Uygulama, içeriği orijinal uygulamadan almak için URL'yi kullanır.
Marshmallow'da Yeni: Doğrudan Paylaşım
Marshmallow'da Direct Share adında başka bir mekanizma var . Bu, doğrudan seçici iletişim kutusundan paylaşılacak kişileri veya grupları seçerek "kime göndermek istersiniz" ek adımını atlamanız için niyet mekanizmasını tamamlar. Bu biraz farklı çalışır: iletişim uygulaması bir hizmet sunmak zorundadır. İçeriğe sahip uygulama bir seçici istediğinde, Android ilgili her uygulama için hizmeti başlatır. Hizmet, ilgili paylaşım hedeflerinin bir listesini döndürür ve Android, tüm bu ayrı listeleri iletişim kutusunda gösterilen listeye birleştirir.