Метод hasSystemFeature возвращает неправильное значение при проверке поддержки BluetoothLE

import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.bluetooth.BluetoothAdapter import android.bluetooth.BluetoothManager import android.content.Context import org.jetbrains.anko.toast class MainActivity : AppCompatActivity() { var deviceBluetoothAdapter : BluetoothAdapter? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val bluetoothManager : BluetoothManager = getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager val check = packageManager.hasSystemFeature("FEATURE_BLUETOOTH_LE") deviceBluetoothAdapter = bluetoothManager.adapter if (check) toast("BLE supported") else toast("BLE not supported") } } 

Я использую телефон, поддерживающий Bluetooth Low Energy, но я получаю неправильный тост – «BLE не поддерживается». Я проверяю вывод hasSystemFeature для других периферийных устройств, таких как Camera, и также возвращает false. Что я делаю не так ?

У меня есть правильные конфиги внутри манифеста:

 <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-feature android:name="android.hardware.bluetooth.le" android:required="false"/> 

Вы должны использовать:

 hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE) 

https://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_BLUETOOTH_LE

Альтернативный способ проверить, поддерживает ли устройство bluetooth:

 val btAdapter = BluetoothAdapter.getDefaultAdapter() val btSupported = btAdapter != null 

И проверить, включено ли это:

 val btEnabled: Boolean = btAdapter?.isEnabled ?: false