Android Bluetooth Kullanımı

Merhabalar, bugün sizlerle günlük hayatımızda sıklıkla kullandığımız bir yapı olan Bluetooth’un Android programlamada nasıl , ne şekilde kullanıyoruz onları öğreneceğiz. Haydi başlayalım.


Öncelikle Bluetooth nedir onu bir öğrenelim. Daha sonra Android tarafında nasıl kullanılacak ona bir bakalım.

Bluetooth Nedir?

Bluetooth, kısa mesafelerde verilerin kablosuz olarak aktarımını sağlayan bir kablosuz iletişim teknolojisidir. Bluetooth, radyo frekanslarını kullanarak 2.4 GHz ile haberleşmeyi sağlayabilmektedir. Bluetooth teknolojisi açık alanda 10 metre düzeyinde çekim kapasitesine kadar çıkabilmektedir. Bluetooth ile yapılan transferlerde 1 Mbps ile 721 Kbps arasında veri aktarım hızı elde edilmektedir.


Android işletim sistemi, Bluetooth ile ağ işlemlerini desteklemektedir. Cihazlar arasında, kablosuz iletişimi kullanarak veri transferi yapmaktadır. 

Android Bluetooth API’lerini kullanarak, Bluetooth ile ilgili fonksiyonlarına rahatlıkla erişebiliriz.

Bluetooth API’si kullanarak diğer cihazlara bağlanılmasını sağlar.


Bluetooth API’lerini kullanarak neler yapabiliriz ?

  • Diğer Bluetooth cihazlarını tarama
  • Cihaz ile eşleştirilen Bluetooth cihazlarını sorgulama
  • Diğer cihazlarla veri transferlerini yapma
  • Servislerle diğer cihazlara bağlanma
  • Birden fazla kablosuz bağlantıları yönetme

Bluetooth yapısını öğrendikten sonra şimdi Android tarafında nasıl kullanılacak onu öğrenelim.

Bluetooth Adapter

Local Bluetooth aygıtını temsil eden bir classtır. Bu class ile local Bluetooth aygıtlarına erişim sağlanabilir. Tüm bluetooth etkileşimleri için giriş noktası bu sınıftır. Bu sınıfı kullanmadan diğer işlemleri yapamayız. Bu class kullanıldığı sürece aşağıdaki işlemleri yapabiliriz :

  • Diğer Bluetooth cihazlarını bulmak ve eşleştirmek
  • Cihazların eşleştirilmesinden sonra cihazları sorgulamak
  • MAC adresini öğrenmek
  • Diğer cihazlarla iletişime geçebilmek için BluetoothServerSocket oluşturmak gibi spesifik işlemleri yapmayı sağlar.

Bluetooth İzinleri

Uygulamalarınızda Bluetooth özelliklerini kullanabilmek için, BLUETOOTHiznini Manifest dosyamıza eklemek zorundayız. Eklemediğimiz zaman bizlere uyarı vermektedir. Uygulamanızda Bluetooth cihazlarını taramak, Bluetooth ayarlarını değiştirebilmek için BLUETOOTH_ADMINiznini Manifest dosyasına eklemeliyiz.

NotBLUETOOTH_ADMINizni BLUETOOTHizniyle birlikte kullanılmalıdır. Yoksa hiçbir anlam ifade etmez ve istenilen işlemleri yapamayız.

Öğrendiğimiz bu izinleri aşağıdaki gibi manifest dosyasına ekliyoruz : 

<manifest ...
    package="com.halil.ozel.bluetoothapp">
    
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
...
</manifest>

Bluetooth ile ilgili İşlemleri

Bluetooth ile ilgili uygulamalar geliştirebilmek için öncelikle cihazınızın Bluetooth’u desteklemesi lazım. Bu aşamayı günümüzde geçemeyen çok az cihaz vardır diye düşünüyorum. Bu kısmı atladıktan sonra aşağıdaki işlemleri yapabilirsiniz.

Bluetooth Aygıtına Erişim

Cihazın Bluetooth aygıtına erişmek için, BluetoothAdapter sınıfını kullanacağız. Aşağıda verilen kod ile cihazdaki Bluetooth aygıtına erişim sağlanır.

 BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
        
  if (bluetoothAdapter == null){

     // Bluetooth desteği bulunmuyorsa neler olacak.
  }

Bluetooth Etkinleştirme

Android cihazda Bluetooth aygıtı bulunuyorsa ve Bluetooth aygıtını etkinleştirmek istiyorsanız bu işlem için enable()fonksiyonunu kullanırız.

 if (!bluetoothAdapter.isEnabled()){
            
  bluetoothAdapter.enable(); // Bluetooth kapalı ise açılır.
 }

Bluetooth Kapatma

Açık olan Bluetooth aygıtını kapatmak için disable()fonksiyonunu kullanırız.

 if (bluetoothAdapter.isEnabled()){

  bluetoothAdapter.disable(); // Bluetooth açıksa kapatılır.
}

Diğer Cihazların Erişimini Ayarlamak

Başlatılan bir aygıtın diğer Bluetooth cihazları tarafından görülebilmesi için BluetoothAdapter.ACTION_REQUEST_DISCOVERABLEintent action ifadesini kullanmamız gerekir. Bu yapının bizlere sunduğu yararsa cihazımızın diğer aygıtlar tarafından keşfedilip, görülmesidir.

Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
startActivity(intent);

Eşleştirilen Cihazların Sorgulanması

Bluetooth desteği olan cihazların daha önceden hangi aygıtlarla eşleştiğini öğrenmek için kullanılan fonksiyon : getBondedDevices(). Bu fonksiyon BluetoothDevicenesnesini döndürmektedir. Döndürdüğü dönüş tipinin değeri Set<BluetoothDevice>şeklindedir.

 Set<BluetoothDevice> devices = bluetoothAdapter.getBondedDevices();

   StringBuffer stringBuffer = new StringBuffer(); // buffer tanımı
        
     for (BluetoothDevice bluetoothDevice: devices){

        stringBuffer.append(bluetoothDevice.getName()); // cihazları ekleme
    }

Bu şekilde birden fazla özelliği uygulamalarınızda kullanabilirsiniz.

Bu yapıları kullanarak bir uygulama geliştiriyorum. Github hesabımdan o projeye erişebilirsiniz. Bluetooth cihazların eşleşmesinden sonra birbirlerine mesaj alıp, yollayabildikleri mini chat uygulamasıdır. Projeyi starlarsanız çok memnun kalırım.

Android Bluetooth Chat App


Yararlandığım Kaynaklar 

Android Bluetooth Tutorial

Android Programlama Ve Uygulama Rehberi


Gelecek yazılarda görüşmek üzere bol kodlu günler dilerim 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir