В моем приложении я хочу получить определенные сведения о подключенной гарнитуре Bluetooth. Сначала я подумал о подключении устройств с профилем гарнитуры.
val result = BluetoothAdapter.getDefaultAdapter()
.getProfileProxy(context, mProfileListener, BluetoothProfile.HEADSET)
Фрагмент прослушивателя выглядит следующим образом:
private var mBluetoothHeadset: BluetoothHeadset? = null
private val mProfileListener = object : BluetoothProfile.ServiceListener {
override fun onServiceConnected(profile: Int, proxy: BluetoothProfile) {
if (profile == BluetoothProfile.HEADSET) {
mBluetoothHeadset = proxy as BluetoothHeadset
val devices = mBluetoothHeadset?.connectedDevices
devices?.forEach {
println(it.name)
}
}
}
override fun onServiceDisconnected(profile: Int) {
if (profile == BluetoothProfile.HEADSET) {
mBluetoothHeadset = null
}
}
}
Я объявил необходимые разрешения в манифесте
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
Но mBluetoothHeadset?.connectedDevices
всегда возвращает пустой список. Но в моем планшете устройство уже подключено к блютуз гарнитуре. Я что-то здесь упускаю?