В моем приложении я хочу получить информацию об аккумуляторе от гарнитуры Bluetooth. Я прочитал, что «android .bluetooth.headset.action.VENDOR_SPECIFIC_HEADSET_EVENT» передает информацию о датчике, из которой можно получить информацию об аккумуляторе.
Я добавил необходимые действия и категории.
private fun registerForBluetoothChanges(context: Context) {
val bluetoothIntentFilter = IntentFilter()
bluetoothIntentFilter.addCategory(BluetoothHeadset.VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY + "." + BluetoothAssignedNumbers.PLANTRONICS)
bluetoothIntentFilter.addCategory(BluetoothHeadset.VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY + "." + BluetoothAssignedNumbers.SAMSUNG_ELECTRONICS
)
bluetoothIntentFilter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED);
bluetoothIntentFilter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED);
bluetoothIntentFilter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED);
bluetoothIntentFilter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED);
bluetoothIntentFilter.addAction(BluetoothHeadset.ACTION_VENDOR_SPECIFIC_HEADSET_EVENT);
bluetoothIntentFilter.addAction(BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED);
bluetoothIntentFilter.addAction(BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED);
BluetoothListener.registerReceiver(context.applicationContext, bluetoothIntentFilter)
}
Я также объявил разрешение Bluetooth в манифесте. Мои запросы:
- Можно ли использовать вышеуказанную трансляцию для прослушивания изменений батареи? Если да, когда событие будет запущено?
- Событие широковещания не было получено. Пробовал с наушниками Samsung level U на Moto G6 (Android 9) и Samsung Tab A (Android 8.1). Здесь есть что-то, чего мне не хватает?