Bluetooth API, Bluetooth profilleriyle çalışmayı destekler. Bluetooth profili, Eller Serbest profili gibi cihazlar arasında Bluetooth tabanlı iletişim için kullanılan kablosuz arayüz spesifikasyonudur. Bir mobil cihazın kablosuz kulaklığa bağlanabilmesi için her iki cihazın da Eller Serbest profilini desteklemesi gerekir.
Bluetooth API, aşağıdaki Bluetooth profilleri için uygulamalar sağlar:
- Mikrofonlu kulaklık. Mikrofonlu Kulaklık profili, cep telefonlarıyla kullanılacak Bluetooth kulaklıklar için destek sağlar. Android, Bluetooth Mikrofonlu Kulaklık Hizmeti'nin kontrolü için proxy olan
BluetoothHeadset
sınıfını sağlar. Buna hem Bluetooth Mikrofonlu Kulaklık hem de Eller Serbest (v1.5) profilleri dahildir.BluetoothHeadset
sınıfı, AT komutlarını destekler. Bu konu hakkında daha fazla bilgi için Tedarikçi firmaya özel AT komutları bölümüne bakın. - A2DP. Gelişmiş Ses Dağıtım Profili (A2DP) profili, Bluetooth bağlantısı üzerinden bir cihazdan diğerine nasıl yüksek kaliteli ses akışı yapılabileceğini tanımlar. Android, Bluetooth A2DP Hizmeti'ni kontrol etmek için bir proxy olan
BluetoothA2dp
sınıfını sağlar. - Sağlık Cihazı. Android, Bluetooth Sağlık Cihazı Profili (HDP) için destek sağlar. Bu, nabız monitörleri, kan ölçerler, termometreler, tartılar gibi Bluetooth'u destekleyen sağlık cihazlarıyla iletişim kurmak için Bluetooth'u kullanan uygulamalar oluşturmanıza olanak tanır. Desteklenen cihazların listesi ve bunlara karşılık gelen cihaz verileri uzmanlık kodları için Bluetooth'un HDP Cihaz Verileri Uzmanlıkları bölümüne bakın.
Bu değerlere, Nomenklatür Kodları Ek'inde
MDC_DEV_SPEC_PROFILE_*
olarak ISO/IEEE 11073-20601 [7] spesifikasyonunda da referans verilir. HDP hakkında daha fazla bilgi için Health Device Profile (Sağlık Cihazı Profili) bölümüne bakın.
Bir profille çalışmaya ilişkin temel adımlar şunlardır:
- Bluetooth kurulumu bölümünde açıklandığı şekilde varsayılan adaptörü alın.
BluetoothProfile.ServiceListener
kurun. Bu işleyici, hizmete bağlandıklarında veya hizmetin bağlantısı kesildiğindeBluetoothProfile
istemcilerine bildirim gönderir.- Profille ilişkili profil proxy nesnesiyle bağlantı kurmak için
getProfileProxy()
aracını kullanın. Aşağıdaki örnekte profil proxy nesnesi,BluetoothHeadset
örneğinin bir örneğidir. onServiceConnected()
'da profil proxy nesnesi için bir herkese açık kullanıcı adı alın.- Profil proxy nesnesini oluşturduktan sonra bağlantının durumunu izlemek ve bu profille ilgili diğer işlemleri gerçekleştirmek için bu nesneyi kullanın.
Aşağıdaki kod snippet'i, Mikrofonlu Kulaklık profilini kontrol edebilmeniz için bir BluetoothHeadset
proxy nesnesine nasıl bağlanacağınızı gösterir:
Kotlin
var bluetoothHeadset: BluetoothHeadset? = null // Get the default adapter val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter() private val profileListener = object : BluetoothProfile.ServiceListener { override fun onServiceConnected(profile: Int, proxy: BluetoothProfile) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = proxy as BluetoothHeadset } } override fun onServiceDisconnected(profile: Int) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = null } } } // Establish connection to the proxy. bluetoothAdapter?.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET) // ... call functions on bluetoothHeadset // Close proxy connection after use. bluetoothAdapter?.closeProfileProxy(BluetoothProfile.HEADSET, bluetoothHeadset)
Java
BluetoothHeadset bluetoothHeadset; // Get the default adapter BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); private BluetoothProfile.ServiceListener profileListener = new BluetoothProfile.ServiceListener() { public void onServiceConnected(int profile, BluetoothProfile proxy) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = (BluetoothHeadset) proxy; } } public void onServiceDisconnected(int profile) { if (profile == BluetoothProfile.HEADSET) { bluetoothHeadset = null; } } }; // Establish connection to the proxy. bluetoothAdapter.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET); // ... call functions on bluetoothHeadset // Close proxy connection after use. bluetoothAdapter.closeProfileProxy(bluetoothHeadset);
Tedarikçi firmaya özel AT komutları
Uygulamalar, mikrofonlu kulaklıklar tarafından gönderilen, tedarikçi firmaya özel önceden tanımlanmış AT komutlarının (Plantronics +XEVENT komutu gibi) sistem yayınlarını almak için kaydolabilir. Örneğin, bir uygulama bağlı bir cihazın pil seviyesini gösteren yayınlar alabilir ve kullanıcıyı bilgilendirebilir veya gerektiğinde başka bir işlem yapabilir. Başlık için tedarikçi firmaya özel AT komutlarını işlemek üzere ACTION_VENDOR_SPECIFIC_HEADSET_EVENT
amacı için bir yayın alıcısı oluşturun.
Sağlık Cihazı Profili
Android, Bluetooth Sağlık Cihazı Profili'ni (HDP) destekler. Bluetooth Health API, Anahtar sınıflar ve arayüzler bölümünde açıklanan BluetoothHealth
, BluetoothHealthCallback
ve BluetoothHealthAppConfiguration
sınıflarını içerir.
Bluetooth Health API'yi kullanırken şu temel HDP kavramlarını anlamak faydalıdır:
- Kaynak
- Tıbbi verileri Android telefon veya tablet gibi akıllı cihazlara ileten bir sağlık cihazı (ör. tartı, glikoz ölçüm cihazı veya termometre).
- Lavabo
- Tıbbi verileri alan akıllı cihaz. Bir HDP uygulamasında lavabo bir
BluetoothHealthAppConfiguration
nesnesiyle temsil edilir. - Kayıt
- Belirli bir sağlık cihazıyla iletişim kurmak için havuzunu kaydetmek için kullanılan süreç.
- Bağ
- Sağlık cihazı (kaynak) ve akıllı cihaz (lavabo) arasında kanal açmak için kullanılan süreç.
HDP uygulaması oluşturun
HDP uygulaması oluşturmayla ilgili temel adımlar şunlardır:
BluetoothHealth
proxy nesnesine bir referans alın. Normal mikrofonlu kulaklık ve A2DP profili cihazlarında olduğu gibi, profil proxy nesnesiyle bağlantı kurmak içinBluetoothProfile.ServiceListener
veHEALTH
profil türüylegetProfileProxy()
çağırmanız gerekir.Bir
BluetoothHealthCallback
oluşturun ve durum havuzu görevi gören bir uygulama yapılandırmasını (BluetoothHealthAppConfiguration
) kaydedin.Sağlık cihazıyla bağlantı kurun.
Sağlık cihazına başarıyla bağlandıktan sonra dosya tanımlayıcıyı kullanarak sağlık cihazında okuma ve yazma işlemleri gerçekleştirin. Alınan verilerin, IEEE 11073 spesifikasyonlarını uygulayan bir durum yöneticisi tarafından yorumlanması gerekir.
İşlem tamamlandığında, sağlık kanalını kapatın ve uygulamanın kaydını iptal edin. Uzun süre etkinlik olmadığında kanal da kapatılır.