13 Aralık 2014 Cumartesi

BroadCastReceiver Kullanımı

BroadCastReceiver işletim sistemi tarafından uygulamalara gönderilen sinyalleri dinlemek ve takip etmekle görevlidir. Bu sinyaller işletim sistemiyle birlikte gelen sistem uygulamaları tarafından oluşturulabileceği gibi market üzerinden indirilen uygulamalar tarafından da gönderilebilir. Bu şekilde uygulamamız telefona gelen çağrılardan, kısa mesajlardan ve diğer olaylardan haberdar olacak.
Bir nesneye BroadCastReceiver özelliği eklememiz için ilk olarak o nesneyi AndroidManifest dosyasında kaydetmemiz gerekiyor.Bu şekilde uygulamamız işletim sisteminin gönderdiği sinyalleri alma yetkisi kazanacak.
BroadCastReceiver yardımıyla Sms Alma uyguaması yapımını anlatıcam.
İlk olarak projemizde SmsReceiver.java adlı bir dosya yaratarak aşağıdaki şekilde düzenleyin.













AndroidManifest dosyasında  BroadCastReceiver özelliği eklememiz için ilk olarak o nesneyi eklememiz gerekir, işletim sistemine bir kısa mesaj geldiğinde SmsReceiver içindeki onReceive metodu çalışır. Intent parametresi gelen uyarıyla ilgili bilgi içermektedir. Context ise uygulamamıza erişmemizi sağlar. getExtras metoduyla intent içerisinde bize yollanan parametreleri alırız. Bir kısa mesajın içeriğine erişmek için pdu adı verilen paketi çekmemiz gerekir. Bir byte dizisi olarak gönderilen pdu, Android SDK ile birlikte          gelen SmsMessage sınıfındaki createFromPdu static metoduyla bir SmsMessage sınıfına dönüştürülür. Mesajın içeriğini çekmek içinse getMessageBody metodunu kullanırız.
Toast, Android SDK ile gelen ve ekrana kısa süreli bir mesaj çıkaran yardımcı sınıftır. Bu mesaj ekranda birkaç saniye görüntülendikten sonra kendiliğinden kaybolur. Bu metodu kullanarak her yeni kısa mesajda ekrana mesajın içeriğini basabiliriz. Bundan sonra uygulamaya yeni mesaj geldiğinde uygulama kapalı da olsa ekrana küçük bir uyarı kutucuğu çıkacak ve mesajın içeriği görüntülenecektir.

Şimdi de uçak modu algılanması yapımını anlatıcam

BroadcastReceiver yardımıyla telefondaki her türlü değişikliğin algılanması mümkündür. Şimdiki örnekte kullanıcı tarafından uçak moduna alındığında telefonun 2 saniye boyunca titreşime girmesini sağlayan bir uygulama göstereceğiz. Öncelikle AndroidManifest dosyasında titreşimle ilgili izinleri tanımlayalım.
Daha sonra uçak modu durumunu yakalayacak sınıfımızı oluşturalım.










AirplaneModeReceiver adlı bu sınıf, Vibrator sınıfı içerisindeki vibrate metodu yardımıyla telefonu 2 saniye boyunca titreşime sokar. Şimdi tek yapmamız  gereken, AndoidManifest dosyasında  AirplaneModeReceiver adlı sınıfı receiver olarak tanımlamaktır.



Bu değişiklikten sonra telefon uçak moduna alındığında 2 saniye boyunca titreşime girer.

Hiç yorum yok:

Yorum Gönder