Bluetooth Düşük Enerji

Android, merkezi rolde Bluetooth Düşük Enerji (BDE) için yerleşik platform desteği sunar ve uygulamaların cihazları keşfetmek, hizmet sorgulamak ve bilgi iletmek için kullanabileceği API'ler sağlar.

Yaygın kullanım alanları aşağıdakileri içerir:

  • Yakındaki cihazlar arasında az miktarda veri aktarılması.
  • Kullanıcılara mevcut konumlarına göre özelleştirilmiş bir deneyim sunmak için yakınlık sensörleriyle etkileşimde bulunma.

Klasik Bluetooth'un aksine BDE, önemli ölçüde daha düşük güç tüketimi için tasarlanmıştır. Bu sayede uygulamalar yakınlık sensörleri, nabız monitörleri ve fitness cihazları gibi daha katı güç gereksinimleri olan BDE cihazlarıyla iletişim kurabilir.

Dikkat: Bir kullanıcı, cihazını BDE kullanarak başka bir cihazla eşlediğinde, iki cihaz arasında iletişim kuran verilere, kullanıcının cihazındaki tüm uygulamalar erişebilir.

Bu nedenle, uygulamanız hassas verileri yakalıyorsa bu verilerin gizliliğini korumak için uygulama katmanı güvenliği uygulamanız gerekir.

Temel bilgiler

BLE özellikli cihazların birbirleri arasında veri iletebilmesi için öncelikle bir iletişim kanalı oluşturmaları gerekir. Bluetooth LE API'lerini kullanmak için manifest dosyanızda çeşitli izinleri beyan etmeniz gerekir. Uygulamanızın Bluetooth kullanma izni olduğunda, uygulamanızın BluetoothAdapter öğesine erişmesi ve cihazda Bluetooth olup olmadığını belirlemesi gerekir. Bluetooth kullanılabiliyorsa cihaz yakındaki BLE cihazları tarar. Bir cihaz bulunduğunda BLE cihazda GATT sunucusuna bağlanılarak BDE cihazının özellikleri keşfedilir. Bağlantı kurulduktan sonra, kullanılabilir hizmetlere ve özelliklere bağlı olarak veriler bağlı cihazla aktarılabilir.

Anahtar terimler ve kavramlar

Aşağıda temel BLE terimleri ve kavramlarının bir özeti yer almaktadır:

  • Genel Özellik Profili (GATT)
    GATT profili, bir BDE bağlantısı üzerinden "özellikler" olarak bilinen kısa veri parçalarını göndermek ve almak için kullanılan genel bir spesifikasyondur. Mevcut tüm BDE uygulama profilleri GATT'yi temel alır. Daha fazla bilgi için GitHub'daki Android BluetoothLeGatt örneğini inceleyin.
  • Profiller
    Bluetooth SIG, BLE cihazlar için birçok profil tanımlar. Profil, bir cihazın belirli bir uygulamada nasıl çalışacağını gösteren spesifikasyondur. Bir cihazın birden fazla profil uygulayabileceğini unutmayın. Örneğin, bir cihazda nabız monitörü ve pil seviyesi dedektörü bulunabilir.
  • Özellik Protokolü (ATT)
    GATT, Özellik Protokolü'ne (ATT) dayanır. GATT/ATT olarak da bilinir. ATT, BDE cihazlarda çalışacak şekilde optimize edilmiştir. Bu doğrultuda, mümkün olduğunca az bayt kullanır. Her özellik, bilgileri benzersiz bir şekilde tanımlamak için kullanılan dize kimliğinin 128 bitlik standart biçimi olan Evrensel Benzersiz Tanımlayıcı (UUID) ile benzersiz bir şekilde tanımlanır. ATT tarafından aktarılan özellikler, özellikler ve hizmetler olarak biçimlendirilir.
  • Özellik
    Bir özellik, tek bir değer ve o özelliğin değerini açıklayan 0-n tanımlayıcıları içerir. Bir özellik, bir sınıfa benzer bir tür olarak düşünülebilir.
  • Açıklayıcı
    Tanımlayıcılar, belirli bir özelliği tanımlayan özelliklerdir. Örneğin, bir tanımlayıcı kullanıcılar tarafından okunabilir bir açıklama, bir özelliğin değeri için kabul edilebilir bir aralık veya özelliğin değerine özgü bir ölçü birimi belirtebilir.
  • Hizmet
    Hizmet, belirli özelliklerin toplamıdır. Örneğin, "nabız ölçümü" gibi özellikleri içeren "Nabız Monitörü" adlı bir hizmetiniz olabilir. Mevcut GATT tabanlı profillerin ve hizmetlerin listesini bluetooth.org adresinde bulabilirsiniz.

Roller ve sorumluluklar

Bir cihaz, BDE cihazıyla etkileşime geçtiğinde aşağıdaki roller ve sorumluluklar geçerlidir:

  • Merkezi ve çevre birimi. Bu, BDE bağlantısının kendisi için geçerlidir. Merkezi roldeki cihaz tarama yapar, reklamı arar, çevre birimi rolündeki cihaz ise reklamı yapar.

  • GATT sunucusu ile GATT istemcisinin karşılaştırılması. Bu, bağlantı kurulduktan sonra iki cihazın birbiriyle nasıl iletişim kurduğunu belirler. Farkı anlamak için, Android telefonunuz ve BDE cihazı olan bir etkinlik izleyiciniz olduğunu düşünün. Telefon merkezi rolü, aktivite izleyici ise çevre birimi rolünü destekler. BDE bağlantısı kurmak için bunlardan birine ihtiyacınız vardır. Yalnızca çevre birimini destekleyen iki öğe birbirleriyle iletişim kuramazdı ve yalnızca merkezi destekleyen iki öğe de iletişim kuramazdı.

Telefon ve etkinlik izleyici bir bağlantı kurduktan sonra GATT meta verilerini birbirine aktarmaya başlar. Aktarılan verilerin türüne bağlı olarak, ikisinden biri sunucu görevi görebilir. Örneğin, aktivite izleyici, sensör verilerini telefona bildirmek istiyorsa, aktivite izleyicinin sunucu görevi görmesi mantıklı olabilir. Etkinlik izleyici, telefondan güncelleme almak istiyorsa telefonun sunucu gibi işlem yapması mantıklı olabilir.

Bu konuda kullanılan örnekte, uygulama (bir Android cihazda çalışan) GATT istemcisidir. Uygulama, Nabız Profilini destekleyen bir BDE nabız monitörü olan GATT sunucusundan veri alır. Alternatif olarak, uygulamanızı GATT sunucusu rolünü üstlenecek şekilde tasarlayabilirsiniz. Daha fazla bilgi için BluetoothGattServer sayfasını inceleyin.