Bluetooth profilleri

Bluetooth API, Bluetooth profilleriyle çalışma desteği içerir. CEVAP Bluetooth profili, Bluetooth tabanlı cihazlar için (Eller Serbest profili gibi) cihazlar arasındaki iletişimi destekler. Cep telefonu için bağlanabilmesi için, her iki cihazın da Eller Serbest profili.

Bluetooth API, aşağıdaki Bluetooth için uygulamalar sağlar: profil:

  • Mikrofonlu kulaklık. Mikrofonlu Kulaklık profili, Bluetooth mikrofonlu kulaklıkların cep telefonlarıyla kullanılıyor. Android, kullanıcıları BluetoothHeadset sınıf, Bluetooth Mikrofonlu Kulaklık Hizmeti'ni kontrol eden bir proxy olan Buna şunlar dâhildir: Bluetooth Mikrofonlu Kulaklık ve Eller Serbest (v1.5) profillerinde kullanılabilir. BluetoothHeadset sınıfı, AT komutlarını destekler. Bu konu hakkında daha fazla bilgi için bkz. Tedarikçiye özel AT komutları.
  • A2DP. Gelişmiş Ses Dağıtım Profili (A2DP) profili, yüksek kaliteli ses, Bluetooth üzerinden bir cihazdan diğerine aktarılabilir bağlantı. Android, kullanıcıları BluetoothA2dp sınıfı kontrol etmek için kullanılan bir proxy'dir.
  • Sağlık Cihazı. Android, Bluetooth Sağlık Cihazı için destek sağlar Profil (HDP). Bu, iletişim kurmak için Bluetooth kullanan uygulamalar oluşturmanıza olanak tanır nabız monitörü, kan gibi Bluetooth'u destekleyen sağlık cihazlarıyla metre, termometre, tartı vb. kullanabilirsiniz. Desteklenen cihazların listesi ve ilgili cihaz verileri uzmanlık kodları için Bluetooth'un HDP'sine bakın Cihaz Verileri Uzmanlık alanları. Bu değerlere ISO/IEEE 11073-20601 [7] spesifikasyonunda da referans verilmiştir Nomenklatür Kodları Ek'inde MDC_DEV_SPEC_PROFILE_* olarak yer almaktadır. Daha fazla HDP ile ilgili bilgilere bakın: Sağlık Cihazı Profili.

Bir profille çalışmaya ilişkin temel adımlar şunlardır:

  1. Varsayılan bağdaştırıcıyı şurada açıklandığı gibi alın: Bluetooth kurulumu.
  2. Kur BluetoothProfile.ServiceListener. Bu dinleyici, BluetoothProfile istemci Hizmet'e bağlı olduklarında veya bağlantıları kesildiğinde.
  3. Tekliflerinizi otomatikleştirmek ve optimize etmek için getProfileProxy() seçin. Aşağıdaki örnekte profil proxy nesnesi, BluetoothHeadset
  4. İçinde onServiceConnected() profil proxy nesnesi için bir herkese açık kullanıcı adı alır.
  5. Profil proxy nesnesini edindikten sonra, bunu kullanarak bu profille ilgili diğer işlemleri gerçekleştirebilirsiniz.

Aşağıdaki kod snippet'i, bir BluetoothHeadset proxy'sine nasıl bağlanılacağını göstermektedir mikrofonlu kulaklık profilini kontrol edin:

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 önceden tanımlanmış tedarikçi firmaya özgü AT'nin sistem yayınlarını almak için kaydolabilir mikrofonlu kulaklıklar tarafından gönderilen komutlar (Plantronics +XEVENT komutu gibi). Örneğin, Bir uygulama, bağlı bir cihazın pil seviyesini belirten yayınları alabilir ve gerekirse kullanıcıyı bilgilendirebilir veya başka bir işlem yapabilir. Yayın oluşturma alıcı ACTION_VENDOR_SPECIFIC_HEADSET_EVENT mikrofonlu kulaklık için satıcıya özgü AT komutlarını işlemeyi düşünmelidir.

Sağlık Cihazı Profili

Android, Bluetooth Sağlık Cihazı Profili'ni (HDP) destekler. Bluetooth Health API'de yer alan BluetoothHealth BluetoothHealthCallback, ve BluetoothHealthAppConfiguration, Bu öğeler, Temel sınıflar ve .

Bluetooth Health API'yi kullanırken şu temel HDP'yi anlamak faydalıdır kavramlar:

Kaynak
Kiloz, glikoz ölçer veya termometre gibi bir sağlık cihazı Android telefon veya tablet gibi akıllı bir cihaza tıbbi veri aktaran.
Lavabo
Tıbbi verileri alan akıllı cihaz. Bir HDP uygulamasında havuzu, BluetoothHealthAppConfiguration nesnesiyle temsil edilir.
Kayıt
Belirli bir sağlık durumuyla iletişim kurmak için havuz kaydetmede kullanılan işlem
Bağlantı
Bir sağlık cihazı (kaynak) ile akıllı cihaz (lavabo).

HDP uygulaması oluştur

HDP uygulaması oluşturmayla ilgili temel adımlar şunlardır:

  1. BluetoothHealth proxy nesnesine referans alın. Normalde olduğu gibi mikrofonlu kulaklık ve A2DP profili cihazları için getProfileProxy() numaralı telefonu BluetoothProfile.ServiceListener ve HEALTH profil türü profil proxy nesnesiyle bağlantı kurun.

  2. BluetoothHealthCallback oluşturun ve bir uygulama yapılandırması kaydedin (BluetoothHealthAppConfiguration) olup olmadığını kontrol edin.

  3. Bir sağlık cihazıyla bağlantı oluşturun.

  4. Bir sağlık cihazına başarılı bir şekilde bağlanıldığında sağlık durumunu okuyup yazma veya dosya tanımlayıcıyı kullanarak sorunu giderebilirsiniz. Alınan verilerin yorumlanması ve IEEE 11073 belgesini uygulayan bir sağlık yöneticisi ile spesifikasyonlarını inceleyin.

  5. İşlemi tamamladığınızda sağlık kanalını kapatın ve uygulamanın kaydını iptal edin. Kanal ayrıca uzun süreli etkinlik olmadığında kapanır.