Отключить программно в Android Автомобили - PullRequest
0 голосов
/ 17 марта 2020

Каков предлагаемый метод для OEM (пользователей автомобильного API) отключения всей системы Android? В CarAudioManager есть отключение уведомлений, но нет методов получения и установки. Я нашел три способа, и я думаю, что все они взломаны:

  1. Auidomanager # setMasterMute скрыт и не отправляет событие паузы
  2. Inject Отключение звука при нажатии клавиши в InputManager, поэтому оно будет обрабатываться в слушателе внутри CarAudioService
  3. Вызов AudioManager # AdjustVolume - мне это показалось наиболее законным, но потом я Обнаружено, что существует выбор, кому событие корректировки будет доставлено в dispatchAdjustVolumeLocked . Если нет активных медиа-сессий, то он доставляется на mGlobalPrioritySession и в конечном итоге обрабатывается mAudioPolicyVolumeCallback , где фактически происходит отключение звука. Если существует существующий сеанс мультимедиа пользователя, то создается впечатление, что событие корректировки пытается быть доставлено в этот сеанс мультимедиа и завершается неудачно при проверке фиксированного тома flag , что обычно имеет место в автомобильных устройствах.

Планируется ли добавить эту функцию в Car API?

...