Intent Type and Register Intent

Merhaba arkadaslar, bu yazımızda Intent tiplerine ve bir intent niyeti için nasıl kayıt oluruz ona değinicez.

Bir intent şunları gerçekleştirebilir ; Activity başlatmak , Service başlatmak , Broadcast yayınlayabilir.

Intent type

Intent type 2 türdedir.Bunlar;  İmplicit ve Explicit intent.

Android açık yada dolaylı olarak bir olayın tetiklenmesini(niyet vs.) desteklemektedir. Örnek olarak kendi uygulamamız içersinde açık olarak bir Activity’i yada bir Servisi başlatabiliriz. Yada Android sistemine kapalı bir intent yollayıp bize bu intent(niyet)’i yapalicek uygulama listesini göstermesini sağlayabiliriz. Mesela bir url’i browserda görüntülemek istediğimizde implicit intent yollarız ve browser özelliği taşıyan app’lar sistem tarafından bize listelenir ve biz bir seçim yaparak işlemi gerçekleştiririz.

Explicit Intent type

Daha çok uygulama içerisinde kullanılır.Çünki başlatılacak olan Activity yada Service tam class adı ile bilinmektedir. Intent objesine başlatılacak olan Activity sınıfının adı verilerek başlatılır.

Bir explicit intent object oluşturuldugunda Android sistemine bir uyarı gider ve ilgili activity bulunur ve activity’nin onCreate() methodu çalıştırılır.

İmplicit Intent type

Dolaylı olarak Activity , Service yada Broadcast başlatmak için kullanılır. İmplicit intent type oluşturuldugunda Android sistemi bu intent filter ile eşleşen uygulamaların bir listesini dialog olarak sunar. Eğer tek eşleşme bulunursa eşleşen uygulama çalıştırılır. Android sistemi bu filtreyi yüklü olan uygulamaların manifest.xml dosyasını okuyarak bulur.

Intent yapılandırıcısının ilk parametresinin  ;

oldugunda dikkat edelim. Bu sayede url görüntüleyebilien uygulamar bize listeleniyor.

Daha fazla ACTION_XXX  için buraya bakabilirsiniz.

Uygulamayı emülatörde çalıştırdıgımızda sadece default browser bulundugu için otomatik olarak browserda url gözükecektir.

Screenshot from 2014-10-06 17:00:00

 

 

 

 

 

 

 

 

 

 

Uygulamayı kendi cihazımda çalıştırdıgımda ise eşleşen uygulamaların listesi görülüyor;

Screenshot_2014-10-06-17-13-09

 

 

 

 

 

 

 

 

 

 

Not : Javelin tarayıcısını öneririm ilginç ve yetenekli bir mobil browser’dır .

Text paylaşmak için ise şu kodu kullanabiliriz. Örn; Facebook , Twitter , G+ vs. gibi.

Intente parametre olarak ACTION_SEND verdik ve intent’in MIME tipini “text/plain” olarak belirledik.

Android bir çok MIME type türünü destekler. Audio , video , image , xml , pdf vs.

Sms yollamak istediğimizde ise şunu kullanabiliriz;

Sms gönderebilen uygulamalın listesi bize sunulacaktır.

Not : Uri.parse içine  ” sms: ” yazılmak zorundadır. Örnek olarak ; “sms:123456789” gibi.

Intent register

manifest.xml dosyasına eklenicek olan intent-filter ile uygulamaya özel intent’lerin alınması sağlanabilir. Örneğin bir uygulama text/html paylaşımı yapabiliyorsa yada url görüntüleyebiliyorsa manifest dosyasına konulacak filtre sayesinde herhangi bir istek geldiginde kullanıcıya sunulacak seçimlerden biri de kendi uygualamamız olur.

Yukarıdaki örneğimizden yola çıkarak browser özelliğini kullanabiliriz. manifest.xml dosyamızda ilgili activity tag’ı içerisinde şunu yazalım ;

Eger herhangi bir url istegi geldiginde birden fazla eşleşme olucak ve bizim uygulamamızda bu listede yer alıcaktır.

Bir text paylaşımı yapan uygulamamız varsa (mesaj , facebook ,twitter vs.) manifest.xml dosyamızda şunu belirtebiliriz. Böylece bir text paylaşım istegi geldiginde Android’in sundugu seçeneklerin arasında bizim uygulamamızda yer alıcaktır.

 

Örnek proje : IntentTypeProject

Yazımız burada bitti arkdaslar bir sonraki yazıda görüşmek üzere. ~ Alican Akkus

Mutlu kalın , kod’la kalın ve bol bol Çay için

1268 Total Views 1 Views Today