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:
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 birContext
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ığındaBluetoothAdapter
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 }
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çinstartActivityForResult()
numaralı telefonu arayın veACTION_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.
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.