Android Bluetooth Bağlantısı – 1

Merhaba arkadaşlar,

Bu yazı dizimde sizlere Android ile Bluetooth bağlantı işlemleri nasıl yapılır, cihazda bluetooth nasıl aktif edilir, bluetooth bağlantısı ile veri alışverişi nasıl gerçekleştirilir konularından bahsedeceğim. 

Öncelikle belirtmek isterim ki, bluetooth özelliği simülatör üzerinde çalışmayacağı için yazmış olduğunuz kodları bluetooth desteği olan bir cihaz üzerinde test etmeniz gerekmektedir.

Android SDK güçlü bir bluetooth desteği ile sunmaktadır. Bu destek bizlere cihazın bluetooth özelliklerini yönetmeyi, çevrede erişilebilen diğer bluetooth cihazları bulmayı ve eşleştirilen cihazlar arasında veri transferi yapmayı sağlamaktadır. Bu yazımda sizlere cihazın bluetooth özelliği nasıl aktif edilir konusundan bahsedeceğim.

Android bluetooth özelliklerini android.bluetooth paketi altında toplamıştır. Projemizde bluetooth API’sini kullanabilmek için öncelikle bluetooth paketini eklememiz gerekmektedir.

Ayrıca cihazda bluetooth kullanımı kullanıcı izni gerektirdiğinden gerekli izinleri yazmamız gerekmektedir.

Gerekli paketi ve izinleri projemize ekledikten sonra arayüze bir Switch ekleyerek devam ediyoruz. (Bu adımda ToggleButton veya Button kullanılabilir, tamamen tasarım yapan kişinin tercihine bağlı bir durum).

Bu eklemiş olduğumuz Switch nesnesi ile cihazın bluetooth özelliğini açıp kapatacağız. MainActivity içerisinde gerekli tanımlamaları yapıyor ve Switch nesnesine görev atıyoruz.

Bu adımda arayüzde yapılan değişikliği test etmek için simülator yardımı ile projeyi çalıştırıyor ve logCat kontrol ediyoruz. Eğer loglar düzgün bir şekilde düşüyor ise bluetooth özelliğini kullanmak için devam ediyoruz.

BluetoothAdapter sınıfından getDefaultAdapter nesnesi null dönüyor ise kullanılan cihaz Bluetooth özelliğini desteklemiyor demektir. Uygulamanın geri kalanı bu tip cihazlar için çalışmayacaktır. Eğer nesne null değilse bluetooth özelliğinin durumunu sorgulayarak devam ediyoruz.

Cihazda bluetooth özelliğinin açık yada kapalı olduğunu sorguluyor, eğer kapalı ise ACTION_REQUEST_ENABLE ile startActivityForResult() Intent’ini çalıştırıyoruz. Bu istek doğrultusunda telefon ekranında istek izin ekranı belirir ve cihazda bluetooth özelliğini aktif etmek için izin istenir. Eğer kullanıcı cihazın bluetooth özelliğinin aktif edilmesini kabul ederse startActivityForResult() methodu, 0’dan büyük olarak tanımlanan ACTION_REQUEST_ENABLE değeri onActivityResult() methoduna requestCode değeri olarak gönderilir. Bluetooth başarılı bir şekilde aktif edilirse RESULT_OK, aktif edilirken bir hata ile karşılaşılır veya kullanıcı izin ekranında isteği kabul etmezse RESULT_CANCELED değeri resultCode olarak onActivityResult() methoduna döner.

bluetooth02

onActivityResult methodunu aşağıdaki şekilde oluşturuyoruz.

Son olarak bluetooth özelliğini kapatmak istediğimizde ise,

kodlarını kullanıyoruz.

Örnek kodun tamamına GitHub üzerinden ulaşabilirsiniz.

Bir sonraki yazımda cihazımızdaki Bluetooth özelliğinin diğer cihazlar tarafından görünebilmesini ve cihazın server-client yapısını oluşturmasını sağlayacak kodları anlatacağım.

Yazı dizisinin sonraki bölümüne buradan ulaşabilirsiniz.

Konuyla ilgili her türlü soru ve yorumlarınızı aşağıdaki form aracılığı ile bana ulaştırabilirsiniz.

Eren Başaran

Software Developer
Mobilhanem Yazarı

5 Yorum

  • Teşekkürler ancak ben pc ile android cihazı bluetooth ile nasıl bağlıcam bilmiyorum umarım en yakında zamanda bilgi verirsiniz projemin bitim süresine çok az kaldı ve bu konu üzerine projem.

    • Fatih unused aslında hata değil uyarıdır. Yani android.bluetooth.* paketi içinden herhangi bir sınıfı kullanmadığın için bu tarz bir uyarı veriyor Android Studio. Eğer bu paketten bir sınıf kullanırsan (örn. BluetoothAdapter btAdapter; gibi.) uyarının kalktığını göreceksin.

  • Merhaba,
    hocam söyleyeceğim şeyin fazla bu konu ile alakası yok ama arayan arkadaşlar içinde kaynak olur.
    konu şu bende bir android tv box var ve bunda bluetooth yok ben bir usb bluetooth adaptör alsam bunu android tv box a taksam usb portundan cihazda bluetooth özelliği aktif olur mu mantıken olur diye düşünüyorum ama donanım olarak cihazda destek yok o yüzden olmaz diyenlerde var bu konuda yazabilirseniz çok memnun olurum.
    şimdiden çok teşekkür ederim.

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?