Mobil geliştirmeArşiv

Android uygulamalarında broadcast receiver

Herkese merhaba. Bu yazıda Android cihazlardaki broadcast receiver'dan (yayın alıcısı) söz edeceğiz. Broadcast receiver, Android cihazlarda kullanılan bir mesajlaşma…

Android uygulamalarında broadcast receiver

Herkese merhaba. Bu yazıda Android cihazlardaki broadcast receiver'dan (yayın alıcısı) söz edeceğiz.

Broadcast receiver, Android cihazlarda kullanılan bir mesajlaşma sistemidir. Bu sistem Android işletim sistemi ile Android uygulamaları arasında çalışır: işletim sistemi, cihazla ilgili bilgileri uygulamalarla paylaşır.

Bu bilgiler cihazın pil seviyesi, Wi-Fi'ye bağlı olup olmadığı, şarja takılıp takılmadığı, uçak modunda olup olmadığı gibi şeyler olabilir.

Bir uygulama bu bilgilerden birini öğrenmek istiyorsa işletim sistemine abone olur. Bu sistem olayları gerçekleştiğinde işletim sistemi, abone olan uygulamalara bir broadcast mesajı gönderir.

Android işletim sistemi bu mesajları ilgili sistem olayı gerçekleştiği anda gönderir. Bu önemlidir; çünkü olaylardan biri meydana geldiği anda broadcast mesajı da hemen gönderilir.

Örneğin uygulamanızın cihazın pili azaldığında haberdar olmasını istiyorsanız uygulamanızı bu sistem olayına abone edersiniz. Pil azaldığında Android işletim sistemi uygulamanıza bir broadcast mesajı gönderir.

Ya da uygulamanızın cihazın Wi-Fi'ye ne zaman bağlandığını bilmesini istiyorsanız uygulamanızı bu sistem olayına abone edebilirsiniz. Cihaz Wi-Fi'ye her bağlandığında Android işletim sistemi uygulamanıza bir broadcast mesajı gönderir.

Android cihazınız pilin azaldığını size bildirdiğinde, aynı mesajı abone olan tüm uygulamalara da gönderir.

Aynı şekilde cihaz uçak moduna geçtiğinde sistem bu mesajı abone olan tüm uygulamalara iletir.

Peki Android uygulamaları için bu bilgileri öğrenmek ne işe yarar?

Uygulamamız yalnızca istediğimiz bilgilere abone olur. Android işletim sistemi her bilgiyi ya da her sistem olayını göndermez; biz uygulamamızın ihtiyaç duyduğu sistem olaylarına abone oluruz.

Sistemden bu bilgileri aldık. Peki bunları nerede kullanacağız?

Örneğin bir uygulama geliştiriyorsunuz ve bu uygulama kullanıcının fotoğraflarını sunucuya kaydediyor. Böyle bir uygulama kullanıcının fotoğraflarına her yerden ulaşmasını sağlar; güzel bir özellik.

Ama fotoğrafları sunucuya nasıl göndereceksiniz? Her fotoğrafı çekildiği anda sunucuya gönderirseniz kullanıcının mobil verisi biter, çünkü kullanıcı yüzlerce fotoğraf çekebilir. Bu, bir uygulama için iyi bir özellik değil; kimse böyle bir uygulamayı kullanmak istemez.

Fotoğrafları cihazın belleğine kaydetmeli ve cihaz Wi-Fi'ye bağlandığında sunucuya göndermelisiniz. Böyle bir özellik kullanıcının mobil veri tüketimini azaltır.

Yani bu tür bir uygulama geliştirmek istiyorsanız cihazın Wi-Fi'ye ne zaman bağlandığını öğrenmeniz gerekir. Uygulamanız sistem olaylarına abone olabilir; cihaz Wi-Fi'ye bağlandığında Android işletim sistemi uygulamaya bir broadcast receiver mesajı gönderir. Uygulamanız bu mesajın ardından kullanıcının fotoğraflarını sunucuya göndermeye başlar.

Cihazın Wi-Fi bağlantısı kesildiğinde de sistem uygulamaya yeniden bir mesaj gönderir ve uygulamanız fotoğrafları göndermeyi durdurur.

Peki broadcast receiver'ı başka nerelerde kullanabiliriz?

Örneğin mesajla doğrulama yapan uygulamalar broadcast mesajlaşma sistemini kullanabilir. WhatsApp, Viber gibi birçok uygulamanın mesajla doğrulama sistemi kullandığını biliyorsunuz. Bazıları mesaj geldiğinde mesajı otomatik olarak okuyor.

Bu tür bir uygulamayı broadcast mesajlaşma sistemiyle geliştirebilirsiniz. Uygulamanız sistem olayına abone olur ve telefona yeni bir mesaj geldiğinde bunu fark eder. Ardından mesajı otomatik olarak okuyabilir.

Bir örnek daha vereyim. Cihazın pili azaldığında sistem, abone olan uygulamalara bir mesaj gönderir. Uygulamalar bu mesajı alınca arka plan görevlerini durdurabilir. Bu hem cihazın pil tüketimini azaltır hem de arka plan görevinin ansızın kesilmesini önler.

Pil seviyesi normale döndüğünde sistem uygulamalara başka bir mesaj gönderir. Uygulamalar bu mesajın ardından arka plan görevlerini yeniden başlatabilir.

Uygulamayı tasarlarken bu broadcast mesajlarından yararlanmak, uygulamanın daha verimli ve daha kaliteli olmasını sağlar.

Şunu da belirtmek isterim: broadcast mesajlaşma sistemi iki uygulama arasında da kullanılabilir.

Yani bir uygulama başka bir uygulamaya broadcast mesajı gönderebilir. Yine de çoğu zaman Android işletim sistemi ile Android uygulamaları arasında kullanılır.

Yazıyı burada bitiriyorum. Bir sonraki yazıda görüşmek üzere.

Kadir Yapar

Yazılım geliştirici

Bilgisayar mühendisliği yüksek lisans derecesine sahip yazılım geliştirici. Android, iOS ve web uygulama geliştirme alanlarında uzmanlaşmıştır.

Kadir Yapar imzalı tüm yazıları görüntüle