Мультимедийное приложение Android Auto — как изменить значок пользовательского действия

Я работаю над мультимедийным приложением для Android Auto и в настоящее время создаю некоторые настраиваемые действия. Я создал пользовательское действие, чтобы установить режим повтора плеера, и я использую значки Exoplayer, которые отлично работают. Однако сейчас я работаю над пользовательским действием для переключения режима случайного воспроизведения. Я создал 2 вектора, которые можно нарисовать, чтобы они были значком, и разница между ними заключается только в цвете (белый включен, серый отключен).

    private inner class ShuffleModeActionProvider : MediaSessionConnector.CustomActionProvider {

    override fun getCustomAction(player: Player): PlaybackStateCompat.CustomAction? {
        val actionLabel: CharSequence = "Shuffle Mode"
        val iconResourceId: Int = if (player.shuffleModeEnabled) {
            R.drawable.ic_shuffle_on
        } else {
            R.drawable.ic_shuffle_off
        }

        return PlaybackStateCompat.CustomAction.Builder(ACTION_SHUFFLE_MODE, actionLabel, iconResourceId).build()
    }

    override fun onCustomAction(player: Player, action: String, extras: Bundle?) {
        player.shuffleModeEnabled = !player.shuffleModeEnabled
    }
}

Когда я тестирую его, он показывает только ic_shuffle_on, белый значок. Кнопка работает, плейлист перетасовывает, но иконка не меняется. Если я напечатаю iconResourceId, он изменится между обоими идентификаторами значков, но на визуальном дисплее останется только белый цвет. У кого-нибудь были подобные проблемы с Android Auto? Мультимедийное приложение Android Auto — как изменить значок пользовательского действия

Спасибо.

0
0
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

После долгой борьбы с этими пользовательскими значками действий я смог заставить их работать. Судя по всему, DHU не сразу распознает созданные пользовательские значки. Поэтому каждый раз, когда я добавлял новый значок, DHU отображал случайные значки, которые не соответствовали тому, что я создал. Я пытался удалить приложение с мобильного телефона, а также перезапустить DHU, но даже несмотря на то, что он не распознавал новые значки.

Единственный способ заставить его работать - это выполнить следующие шаги:

  1. Закройте DHU, если он запущен
  2. Удалите приложение со своего мобильного телефона, если оно у вас установлено
  3. Остановите сервер головного устройства на вашем мобильном телефоне
  4. Перезагрузите свой мобильный телефон
  5. Установите приложение
  6. Запустите сервер головного устройства
  7. Запустите DHU на своем компьютере

После всего этого шага DHU может распознать наличие новых пользовательских значков и соответствующим образом обновить отображение.

Я пробовал несколько подходов, в том числе, но следование этим шагам по порядку было единственным способом заставить его работать. Если у вас возникнет такая же проблема и вы найдете другой способ ее решения, дайте мне знать!

Другие вопросы по теме