Bluetooth'a genel bakış

Android platformu, bir cihazın diğer Bluetooth cihazlarla kablosuz olarak veri alışverişinde bulunmasına olanak tanıyan Bluetooth ağ yığınını destekler. Uygulama çerçevesi, Bluetooth API'leri üzerinden Bluetooth işlevlerine erişim sağlar. Bu API'ler, uygulamaların diğer Bluetooth cihazlara bağlanarak noktadan noktaya ve çok noktalı kablosuz bağlantı özelliklerine sahip olmasını sağlar.

Bir uygulama, Bluetooth API'larını kullanarak aşağıdakileri gerçekleştirebilir:

  • Diğer Bluetooth cihazları tarayın.
  • Eşlenen Bluetooth cihazlar için yerel Bluetooth adaptörünü sorgulayın.
  • RFCOMM kanalları oluşturun.
  • Hizmet keşfi üzerinden diğer cihazlara bağlanma
  • Diğer cihazlara/cihazlardan veri aktarın.
  • Birden fazla bağlantıyı yönetin.

Bu konu Klasik Bluetooth ile ilgilidir. Klasik Bluetooth, cihazlar arasında akış ve iletişim gibi pil yoğun işlemler için doğru seçenektir. Güç gereksinimleri düşük olan Bluetooth cihazlar için Bluetooth Düşük Enerji bağlantılarını kullanabilirsiniz.

Bu dokümanlarda farklı Bluetooth profilleri açıklanmakta ve Bluetooth kullanarak iletişim kurmak için gerekli dört temel görevi gerçekleştirmek üzere Bluetooth API'larının nasıl kullanılacağı açıklanmaktadır:

  • Bluetooth kuruluyor.
  • Eşlenen veya yerel bölgede kullanılabilen cihazlar bulunuyor.
  • Cihazlar bağlanıyor.
  • Cihazlar arasında veri aktarımı.

Bluetooth API'lerinin kullanımıyla ilgili bir tanıtım için Bluetooth Chat örnek uygulamasını inceleyin.

Temel bilgiler

Bluetooth özellikli cihazların birbirleri arasında veri iletebilmesi için öncelikle bir eşleme işlemi kullanarak iletişim kanalı oluşturmaları gerekir. Bulunabilir bir cihaz olan bir cihaz, gelen bağlantı istekleri için kendisini kullanılabilir hale getirir. Başka bir cihaz, hizmet keşif işlemi kullanarak bulunabilir cihazı bulur. Bulunabilir cihaz eşleme isteğini kabul ettikten sonra, iki cihaz güvenlik anahtarı alışverişinde bulundukları bağlanma sürecini tamamlar. Cihazlar bu anahtarları daha sonra kullanmak üzere önbelleğe alır. Eşleme ve bağlama işlemleri tamamlandıktan sonra iki cihaz bilgi alışverişinde bulunur. Oturum tamamlandığında, eşleme isteğini başlatan cihaz, kendisini bulunabilir cihaza bağlayan kanalı serbest bırakır. Bununla birlikte, iki cihaz birbirine bağlı kalır ve böylece gelecekteki oturumlarda birbirlerinin kapsama alanında oldukları ve iki cihaz da bağı kaldırmadığı sürece otomatik olarak yeniden bağlanabilirler.

Bluetooth API'lerinin kullanılması için manifest dosyanızda çeşitli izinleri beyan etmeniz gerekir. Uygulamanızın Bluetooth kullanma izni olduğunda, uygulamanızın BluetoothAdapter'a erişmesi ve cihazda Bluetooth'un kullanılabilir olup olmadığını belirlemesi gerekir. Bluetooth kullanılabiliyorsa üç adımda bağlantı kurabilirsiniz:

Bazı cihazlar, sağladığı verileri açıklayan özel bir Bluetooth profili kullanır.

Anahtar sınıfları ve arayüzler

Tüm Bluetooth API'leri android.bluetooth paketinde bulunur. Bluetooth bağlantıları oluşturmak için ihtiyacınız olan sınıflar ve arayüzler şunlardır:

BluetoothAdapter
Yerel Bluetooth adaptörünü (Bluetooth radyo) temsil eder. BluetoothAdapter, tüm Bluetooth etkileşimleri için giriş noktasıdır. Bu işlevi kullanarak diğer Bluetooth cihazlarını keşfedebilir, bağlı (eşlenmiş) cihazların listesini sorgulayabilir, bilinen bir MAC adresi kullanarak BluetoothDevice oluşturabilir ve diğer cihazlardan gelen iletişimleri dinlemek için bir BluetoothServerSocket oluşturabilirsiniz.
BluetoothDevice
Uzak bir Bluetooth cihazını temsil eder. BluetoothSocket aracılığıyla bir uzaktan cihazla bağlantı isteğinde bulunmak veya cihazla ilgili ad, adres, sınıf ve bağlanma durumu gibi bilgileri sorgulamak için bunu kullanın.
BluetoothSocket
Bluetooth soketinin arayüzünü temsil eder (TCPSocket'ye benzer). Bu bağlantı noktası bir uygulamanın InputStream ve OutputStream kullanarak başka bir Bluetooth cihazıyla veri alışverişinde bulunmasına olanak tanır.
BluetoothServerSocket
Gelen istekleri dinleyen açık bir sunucu yuvasını temsil eder (TCP ServerSocket'ye benzer). İki cihazı bağlamak için bir cihazın bu sınıfla bir sunucu yuvasını açması gerekir. Uzak bir Bluetooth cihazı bu cihaza bağlantı isteğinde bulunduğunda, cihaz bağlantıyı kabul eder ve ardından bağlı bir BluetoothSocket döndürür.
BluetoothClass
Bluetooth cihazların genel özelliklerini ve işlevlerini açıklar. Bu, cihazın sınıflarını ve hizmetlerini tanımlayan salt okunur bir özellik grubudur. Bu bilgiler bir cihazın türüyle ilgili yararlı ipuçları sağlasa da, bu sınıfın özellikleri her zaman cihazın desteklediği tüm Bluetooth profillerini ve hizmetlerini açıklamayabilir.
BluetoothProfile
Bluetooth profilini temsil eden bir arayüz. Bluetooth profili, cihazlar arasında Bluetooth tabanlı iletişim için kullanılan kablosuz bir arayüz özelliğidir. Eller Serbest profili buna örnek olarak gösterilebilir. Profillerle ilgili daha fazla açıklama için Bluetooth profilleri konusuna bakın.
BluetoothHeadset
Cep telefonlarıyla kullanılmak üzere Bluetooth kulaklıklar için destek sağlar. Buna hem Bluetooth Mikrofonlu Kulaklık profili hem de Eller Serbest (v1.5) profili dahildir.
BluetoothA2dp
Gelişmiş Ses Dağıtım Profili (A2DP) kullanılarak Bluetooth bağlantısı üzerinden bir cihazdan diğerine nasıl yüksek kalitede ses aktarılabileceğini tanımlar.
BluetoothHealth
Bluetooth hizmetini kontrol eden Sağlık Cihazı Profili proxy'sini temsil eder.
BluetoothHealthCallback
BluetoothHealth geri çağırma işlevini uygulamak için kullandığınız soyut bir sınıf. Uygulamanın kayıt durumu ve Bluetooth kanal durumundaki değişikliklerle ilgili güncellemeleri almak için bu sınıfı genişletmeniz ve geri çağırma yöntemlerini uygulamanız gerekir.
BluetoothHealthAppConfiguration
Bluetooth Sağlık üçüncü taraf uygulamasının uzak bir Bluetooth sağlık cihazıyla iletişim kurmak için kaydettiği bir uygulama yapılandırmasını temsil eder.
BluetoothProfile.ServiceListener
Belirli bir profili çalıştıran dahili hizmete bağlanıldıklarında veya bağlantıları kesildiğinde BluetoothProfile arası iletişim (IPC) istemcilerini bilgilendiren bir arayüz.