Bluetooth'u kur

Uygulamanızın Bluetooth veya Bluetooth Düşük Enerji üzerinden iletişim kurabilmesi için önce cihazda Bluetooth'un desteklendiğini doğrulamanız ve destekliyorsa da bu özelliğin etkinleştirildiğinden emin olun. Bu kontrolün yalnızca <uses-feature.../> manifest dosyası girişindeki android:required özelliği false olarak ayarlanmışsa gerekli olduğunu unutmayın.

Bluetooth desteklenmiyorsa Bluetooth özelliklerini düzgünce devre dışı bırakmanız gerekir. Bluetooth destekleniyor ancak devre dışıysa, kullanıcıdan uygulamadan ayrılmadan Bluetooth'u etkinleştirmesini isteyebilirsiniz.

İlk adım, aşağıdaki API'leri kullanmak için manifest dosyanıza Bluetooth izinlerini eklemektir.

İzinler oluşturulduktan sonra, Bluetooth kurulumu BluetoothAdapter kullanılarak iki adımda gerçekleştirilir:

  1. BluetoothAdapter edinin.

    BluetoothAdapter, tüm Bluetooth etkinlikleri için gereklidir. BluetoothAdapter, cihazın kendi Bluetooth adaptörünü (Bluetooth radyosu) temsil eder. BluetoothAdapter almak için öncelikle bir Context hesabına sahip olmanız gerekir. BluetoothManager sistem hizmetinin bir örneğini elde etmek için bu bağlamı kullanın. BluetoothManager#getAdapter çağrısı yapıldığında BluetoothAdapter nesnesi oluşturulur. getAdapter() null değerini döndürürse cihaz Bluetooth'u desteklemiyordur.

    Örneğin:

    Kotlin

    val bluetoothManager: BluetoothManager = getSystemService(BluetoothManager::class.java)
    val bluetoothAdapter: BluetoothAdapter? = bluetoothManager.getAdapter()
    if (bluetoothAdapter == null) {
      // Device doesn't support Bluetooth
    }
    

    Java

    BluetoothManager bluetoothManager = getSystemService(BluetoothManager.class);
    BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter();
    if (bluetoothAdapter == null) {
      // Device doesn't support Bluetooth
    }
    
  2. Bluetooth'u etkinleştir.

    Daha sonra, Bluetooth'un etkinleştirildiğinden emin olmanız gerekir. Bluetooth'un etkin olup olmadığını kontrol etmek için isEnabled() numaralı telefonu arayın. Bu yöntem false (yanlış) değerini döndürürse Bluetooth devre dışı bırakılır. Bluetooth'un etkinleştirilmesini istemek için startActivityForResult() numaralı telefonu arayın ve ACTION_REQUEST_ENABLE amaç işlemini iletin. Bu çağrı, sistem ayarları üzerinden (uygulamanızı durdurmadan) Bluetooth'u etkinleştirme isteğini gönderir.

    Örneğin:

    Kotlin

    if (bluetoothAdapter?.isEnabled == false) {
      val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
      startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)
    }
    

    Java

    if (!bluetoothAdapter.isEnabled()) {
      Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
      startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
    }
    

Bluetooth'u etkinleştirmek için kullanıcı izni isteyen bir iletişim kutusu görünür (Şekil 1'de gösterildiği gibi). Kullanıcı izin verirse sistem, Bluetooth'u etkinleştirmeye başlar ve işlem tamamlandığında (veya başarısız olduğunda) odak uygulamanıza döner.


Şekil 1. Bluetooth'u etkinleştirme iletişim kutusu.

startActivityForResult() değerine geçirilen REQUEST_ENABLE_BT sabiti, yerel olarak tanımlanmış ve 0'dan büyük veya 0'a eşit olması gereken bir tam sayıdır. Sistem, onActivityResult() uygulamanızda requestCode parametresi olarak bu sabit değeri size geri iletir.

Bluetooth başarıyla etkinleştirilirse etkinliğiniz onActivityResult() geri çağırmasında RESULT_OK sonuç kodunu alır. Bluetooth bir hata nedeniyle etkinleştirilmemişse (veya kullanıcı "Reddet" yanıtı verdiyse) sonuç kodu RESULT_CANCELED olur.

İsteğe bağlı olarak uygulamanız, Bluetooth durumu her değiştiğinde sistemin yayınladığı ACTION_STATE_CHANGED yayın amacını da dinleyebilir. Bu yayın, sırasıyla yeni ve eski Bluetooth durumlarını içeren EXTRA_STATE ve EXTRA_PREVIOUS_STATE ek alanlarını içerir. Bu ekstra alanlar için olası değerler STATE_TURNING_ON, STATE_ON, STATE_TURNING_OFF ve STATE_OFF şeklindedir. Uygulamanızın, Bluetooth durumunda yapılan çalışma zamanı değişikliklerini algılaması gerekiyorsa bu yayını dinlemek faydalı olabilir.

İpucu: Keşfedilebilirliği etkinleştirmek, Bluetooth'u otomatik olarak etkinleştirir. Bluetooth etkinliği gerçekleştirmeden önce cihaz bulunabilirliğini tutarlı bir şekilde etkinleştirmeyi planlıyorsanız önceki adımlarda 2. adımı atlayabilirsiniz.

Cihazda Bluetooth etkinleştirildikten sonra hem Bluetooth klasik hem de Bluetooth Düşük Enerji'yi kullanabilirsiniz.

Bluetooth klasik için Bluetooth cihazları bulabilir ve Bluetooth cihazlara bağlanabilirsiniz.

Bluetooth Düşük Enerji için BLE cihazlarını bulabilir, bir GATT sunucusuna bağlanabilir ve BLE verilerini aktarabilirsiniz.