AIMP Forum

AIMP for PC => Вопросы / Questions => Topic started by: nackwork on October 22, 2025, 01:21:27

Title: [Есть решение] Странности с регистрацией медиасессии на автомобильном планшете
Post by: nackwork on October 22, 2025, 01:21:27
Доброе время суток!

На планшете автомобиля Zeekr 001 (Android 12 custom) есть стандартный медиа виджет, который позволяет управлять треками и отображает информацию (название, прогресс воспроизведения, обложку).

При запуске AIMP, медиа сессия в этом виджете изначально не регистрируется, и, соответственно - не работает управление через виджет и с кнопок на руле.
Однако, если после запуска AIMP запустить и свернуть другой плеер (любой, например - Yandex Music, VLC, Foobar2000), то медиа сессия от AIMP начинает отображаться, и, соответственно, управление начинает работать. Такое поведение из указанных плееров наблюдается только у AIMP, остальные - корректно регистрируют медиа сессию при запуске.

Я подснял и выложил на ядиск видео, поясняющее проблему:
https://disk.yandex.com/i/zOokMSzEb-gIgw

Вопрос: это баг, ожидаемое поведение или я где-то не докрутил настройки?

Еще одна проблема (не знаю, связана ли с первой или нет) - в виджете, при проигрывании треков AIMP не обновляется прогресс воспроизведения (полоска). В указанных других плеерах подобной проблемы не наблюдаю.

Воспроизводится в 100% случаев на всех версиях плеера (public, RC, beta), выпущенных за последние пару месяцев.

Дайте знать, если нужна какая-то дополнительная информация.

Благодарность за отличный продукт!
Title: Re: [1659] Странности с регистрацией медиасессии на автомобильном планшете
Post by: Artem on October 22, 2025, 07:45:55
то медиа сессия от AIMP начинает отображаться, и, соответственно, управление начинает работать

Что говорит нам о том, что плеер-то медиасессию поднял...

У вас есть возможность рут доступа к устройству?
Title: Re: [1659] Странности с регистрацией медиасессии на автомобильном планшете
Post by: nackwork on October 22, 2025, 08:44:27
Да, временный рут включать есть возможность, и также, есть доступ по ADB.
Title: Re: [1659] Странности с регистрацией медиасессии на автомобильном планшете
Post by: Artem on October 22, 2025, 15:00:14
есть доступ по ADB.

В момент, когда плеер запущен, но штатный виджет его не видит:

Code: [Select]
adb shell dumpsys media_session
Title: Re: [1659] Странности с регистрацией медиасессии на автомобильном планшете
Post by: nackwork on October 22, 2025, 17:46:19
Это список сессий, если запустить только AIMP, в этом случае виджет не работает:
d:\Zeekr Music>adb shell dumpsys media_session
MEDIA SESSION SERVICE (dumpsys media_session)

3 sessions listeners.
Global priority session is com.android.server.telecom/HeadsetMediaButton (userId=0)
  HeadsetMediaButton com.android.server.telecom/HeadsetMediaButton (userId=0)
    ownerPid=1242, ownerUid=1000, userId=0
    package=com.android.server.telecom
    launchIntent=null
    mediaButtonReceiver=null
    active=false
    flags=65537
    rating type=0
    controllers: 0
    state=null
    audioAttrs=AudioAttributes: usage=USAGE_VOICE_COMMUNICATION content=CONTENT_TYPE_SPEECH flags=0x800 tags= bundle=null
    volumeType=1, controlType=2, max=0, current=0
    metadata: null
    queueTitle=null, size=0
User Records:
Record for full_user=0
  Volume key long-press listener: null
  Volume key long-press listener package:
  Media key listener: null
  Media key listener package:
  OnMediaKeyEventDispatchedListener: added 0 listener(s)
  OnMediaKeyEventSessionChangedListener: added 1 listener(s)
    from com.android.bluetooth
  Last MediaButtonReceiver: MBR {pi=PendingIntent{9df47d0: PendingIntentRecord{3761f92 com.aimp.player broadcastIntent}}, type=1}
  Media button session is com.aimp.player/AIMP (userId=0)
  Sessions Stack - have 4 sessions:
    AIMP com.aimp.player/AIMP (userId=0)
      ownerPid=5198, ownerUid=10125, userId=0
      package=com.aimp.player
      launchIntent=PendingIntent{6d323c9: PendingIntentRecord{cb0dd60 com.aimp.player startActivity}}
      mediaButtonReceiver=MBR {pi=PendingIntent{9df47d0: PendingIntentRecord{3761f92 com.aimp.player broadcastIntent}}, type=1}
      active=true
      flags=7
      rating type=1
      controllers: 1
      state=PlaybackState {state=3, position=139405, buffered position=0, speed=1.0, updated=138507006, actions=2375167, custom actions=[Action:mName='Repeat All, mIcon=2131231018, mExtras=null, Action:mName='Previous group, mIcon=2131231017, mExtras=null, Action:mName='Add to favorites, mIcon=2131231010, mExtras=null, Action:mName='Next group, mIcon=2131231013, mExtras=null, Action:mName='Normal, mIcon=2131231022, mExtras=null], active item id=0, error=null}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: size=14, description=Stand Up For Rock 'N' Roll, Airbourne, Runnin' Wild
      queueTitle=Default, size=2
    foobar2000 com.foobar2000.foobar2000/foobar2000 (userId=0)
      ownerPid=18242, ownerUid=10039, userId=0
      package=com.foobar2000.foobar2000
      launchIntent=null
      mediaButtonReceiver=MBR {pi=PendingIntent{301b219: PendingIntentRecord{452a2de com.foobar2000.foobar2000 broadcastIntent}}, type=1}
      active=true
      flags=3
      rating type=0
      controllers: 1
      state=PlaybackState {state=2, position=3700, buffered position=0, speed=0.0, updated=115259831, actions=895, custom actions=[], active item id=-1, error=null}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: size=6, description=Stalingrad, Accept, Stalingrad
      queueTitle=null, size=0
    BluetoothMediaBrowserService com.android.bluetooth/BluetoothMediaBrowserService (userId=0)
      ownerPid=13574, ownerUid=1002, userId=0
      package=com.android.bluetooth
      launchIntent=null
      mediaButtonReceiver=null
      active=false
      flags=3
      rating type=0
      controllers: 10
      state=PlaybackState {state=7, position=0, buffered position=0, speed=0.0, updated=130942657, actions=0, custom actions=[], active item id=-1, error=‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‏‏‎‎‏‎Bluetooth audio disconnected‎‏‎‎‏‎}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: null
      queueTitle=‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‎‎‎‏‎‏‎‎‎‎‎‏‎‏‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎‏‎‎‎‏‏‎‎Now Playing‎‏‎‎‏‎, size=0
    MediaSessionService com.arcvideo.car.video/MediaSessionService (userId=0)
      ownerPid=2916, ownerUid=10082, userId=0
      package=com.arcvideo.car.video
      launchIntent=null
      mediaButtonReceiver=MBR {pi=PendingIntent{a832cbf: PendingIntentRecord{c366f8c com.arcvideo.car.video broadcastIntent}}, type=1}
      active=true
      flags=3
      rating type=0
      controllers: 1
      state=PlaybackState {state=0, position=0, buffered position=0, speed=1.0, updated=138357479, actions=0, custom actions=[], active item id=-1, error=null}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: null
      queueTitle=null, size=0
Audio playback (lastly played comes first)
  uid=10125 packages=com.aimp.player
Media session config:
  media_button_receiver_fgs_allowlist_duration_ms: [cur: 10000, def: 10000]
  media_session_calback_fgs_allowlist_duration_ms: [cur: 10000, def: 10000]
  media_session_callback_fgs_while_in_use_temp_allow_duration_ms: [cur: 10000, def: 10000]


А это - сессии, если AIMP "протолкнуть" другим плеером (использовал Foobar2000), в этом случае виджет работает с AIMP:
d:\Zeekr Music>adb shell dumpsys media_session
MEDIA SESSION SERVICE (dumpsys media_session)

3 sessions listeners.
Global priority session is com.android.server.telecom/HeadsetMediaButton (userId=0)
  HeadsetMediaButton com.android.server.telecom/HeadsetMediaButton (userId=0)
    ownerPid=1242, ownerUid=1000, userId=0
    package=com.android.server.telecom
    launchIntent=null
    mediaButtonReceiver=null
    active=false
    flags=65537
    rating type=0
    controllers: 0
    state=null
    audioAttrs=AudioAttributes: usage=USAGE_VOICE_COMMUNICATION content=CONTENT_TYPE_SPEECH flags=0x800 tags= bundle=null
    volumeType=1, controlType=2, max=0, current=0
    metadata: null
    queueTitle=null, size=0
User Records:
Record for full_user=0
  Volume key long-press listener: null
  Volume key long-press listener package:
  Media key listener: null
  Media key listener package:
  OnMediaKeyEventDispatchedListener: added 0 listener(s)
  OnMediaKeyEventSessionChangedListener: added 1 listener(s)
    from com.android.bluetooth
  Last MediaButtonReceiver: MBR {pi=PendingIntent{9df47d0: PendingIntentRecord{3761f92 com.aimp.player broadcastIntent}}, type=1}
  Media button session is com.aimp.player/AIMP (userId=0)
  Sessions Stack - have 5 sessions:
    AIMP com.aimp.player/AIMP (userId=0)
      ownerPid=5198, ownerUid=10125, userId=0
      package=com.aimp.player
      launchIntent=PendingIntent{6d323c9: PendingIntentRecord{cb0dd60 com.aimp.player startActivity}}
      mediaButtonReceiver=MBR {pi=PendingIntent{9df47d0: PendingIntentRecord{3761f92 com.aimp.player broadcastIntent}}, type=1}
      active=true
      flags=7
      rating type=1
      controllers: 2
      state=PlaybackState {state=3, position=0, buffered position=0, speed=1.0, updated=138834477, actions=2375167, custom actions=[Action:mName='Repeat All, mIcon=2131231018, mExtras=null, Action:mName='Previous group, mIcon=2131231017, mExtras=null, Action:mName='Add to favorites, mIcon=2131231010, mExtras=null, Action:mName='Next group, mIcon=2131231013, mExtras=null, Action:mName='Normal, mIcon=2131231022, mExtras=null], active item id=0, error=null}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: size=14, description=Stand Up For Rock 'N' Roll, Airbourne, Runnin' Wild
      queueTitle=Default, size=2
    foobar2000 com.foobar2000.foobar2000/foobar2000 (userId=0)
      ownerPid=18242, ownerUid=10039, userId=0
      package=com.foobar2000.foobar2000
      launchIntent=null
      mediaButtonReceiver=MBR {pi=PendingIntent{301b219: PendingIntentRecord{452a2de com.foobar2000.foobar2000 broadcastIntent}}, type=1}
      active=true
      flags=3
      rating type=0
      controllers: 1
      state=PlaybackState {state=2, position=3700, buffered position=0, speed=0.0, updated=115259831, actions=895, custom actions=[], active item id=-1, error=null}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: size=6, description=Stalingrad, Accept, Stalingrad
      queueTitle=null, size=0
    BluetoothMediaBrowserService com.android.bluetooth/BluetoothMediaBrowserService (userId=0)
      ownerPid=13574, ownerUid=1002, userId=0
      package=com.android.bluetooth
      launchIntent=null
      mediaButtonReceiver=null
      active=false
      flags=3
      rating type=0
      controllers: 10
      state=PlaybackState {state=7, position=0, buffered position=0, speed=0.0, updated=130942657, actions=0, custom actions=[], active item id=-1, error=‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‏‏‎‎‏‎Bluetooth audio disconnected‎‏‎‎‏‎}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: null
      queueTitle=‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‎‎‎‏‎‏‎‎‎‎‎‏‎‏‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎‏‎‎‎‏‏‎‎Now Playing‎‏‎‎‏‎, size=0
    MediaSessionService com.arcvideo.car.video/MediaSessionService (userId=0)
      ownerPid=2916, ownerUid=10082, userId=0
      package=com.arcvideo.car.video
      launchIntent=null
      mediaButtonReceiver=MBR {pi=PendingIntent{a832cbf: PendingIntentRecord{c366f8c com.arcvideo.car.video broadcastIntent}}, type=1}
      active=true
      flags=3
      rating type=0
      controllers: 1
      state=PlaybackState {state=0, position=0, buffered position=0, speed=1.0, updated=138357479, actions=0, custom actions=[], active item id=-1, error=null}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: null
      queueTitle=null, size=0
    foobar2000 com.foobar2000.foobar2000/foobar2000 (userId=0)
      ownerPid=18242, ownerUid=10039, userId=0
      package=com.foobar2000.foobar2000
      launchIntent=null
      mediaButtonReceiver=MBR {pi=PendingIntent{1e42b8e: PendingIntentRecord{452a2de com.foobar2000.foobar2000 broadcastIntent}}, type=1}
      active=true
      flags=3
      rating type=0
      controllers: 1
      state=PlaybackState {state=2, position=4120, buffered position=0, speed=0.0, updated=138830692, actions=895, custom actions=[], active item id=-1, error=null}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: size=6, description=Stalingrad, Accept, Stalingrad
      queueTitle=null, size=0
Audio playback (lastly played comes first)
  uid=10125 packages=com.aimp.player
Media session config:
  media_button_receiver_fgs_allowlist_duration_ms: [cur: 10000, def: 10000]
  media_session_calback_fgs_allowlist_duration_ms: [cur: 10000, def: 10000]
  media_session_callback_fgs_while_in_use_temp_allow_duration_ms: [cur: 10000, def: 10000]


А тут - сессии, если вместо AIMP первым запустить Foobar2000, в этом случае виджет с ним работает без проталкивания:
d:\Zeekr Music>adb shell dumpsys media_session
MEDIA SESSION SERVICE (dumpsys media_session)

3 sessions listeners.
Global priority session is com.android.server.telecom/HeadsetMediaButton (userId=0)
  HeadsetMediaButton com.android.server.telecom/HeadsetMediaButton (userId=0)
    ownerPid=1242, ownerUid=1000, userId=0
    package=com.android.server.telecom
    launchIntent=null
    mediaButtonReceiver=null
    active=false
    flags=65537
    rating type=0
    controllers: 0
    state=null
    audioAttrs=AudioAttributes: usage=USAGE_VOICE_COMMUNICATION content=CONTENT_TYPE_SPEECH flags=0x800 tags= bundle=null
    volumeType=1, controlType=2, max=0, current=0
    metadata: null
    queueTitle=null, size=0
User Records:
Record for full_user=0
  Volume key long-press listener: null
  Volume key long-press listener package:
  Media key listener: null
  Media key listener package:
  OnMediaKeyEventDispatchedListener: added 0 listener(s)
  OnMediaKeyEventSessionChangedListener: added 1 listener(s)
    from com.android.bluetooth
  Last MediaButtonReceiver: MBR {pi=PendingIntent{f5fbdc0: PendingIntentRecord{452a2de com.foobar2000.foobar2000 broadcastIntent}}, type=1}
  Media button session is com.foobar2000.foobar2000/foobar2000 (userId=0)
  Sessions Stack - have 3 sessions:
    foobar2000 com.foobar2000.foobar2000/foobar2000 (userId=0)
      ownerPid=9216, ownerUid=10039, userId=0
      package=com.foobar2000.foobar2000
      launchIntent=null
      mediaButtonReceiver=MBR {pi=PendingIntent{f5fbdc0: PendingIntentRecord{452a2de com.foobar2000.foobar2000 broadcastIntent}}, type=1}
      active=true
      flags=3
      rating type=0
      controllers: 2
      state=PlaybackState {state=3, position=13739, buffered position=0, speed=1.0, updated=139019670, actions=895, custom actions=[], active item id=-1, error=null}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: size=6, description=Stalingrad, Accept, Stalingrad
      queueTitle=null, size=0
    BluetoothMediaBrowserService com.android.bluetooth/BluetoothMediaBrowserService (userId=0)
      ownerPid=13574, ownerUid=1002, userId=0
      package=com.android.bluetooth
      launchIntent=null
      mediaButtonReceiver=null
      active=false
      flags=3
      rating type=0
      controllers: 10
      state=PlaybackState {state=7, position=0, buffered position=0, speed=0.0, updated=130942657, actions=0, custom actions=[], active item id=-1, error=‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‏‏‎‎‏‎Bluetooth audio disconnected‎‏‎‎‏‎}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: null
      queueTitle=‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‎‎‎‏‎‏‎‎‎‎‎‏‎‏‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎‏‎‎‎‏‏‎‎Now Playing‎‏‎‎‏‎, size=0
    MediaSessionService com.arcvideo.car.video/MediaSessionService (userId=0)
      ownerPid=2916, ownerUid=10082, userId=0
      package=com.arcvideo.car.video
      launchIntent=null
      mediaButtonReceiver=MBR {pi=PendingIntent{a832cbf: PendingIntentRecord{c366f8c com.arcvideo.car.video broadcastIntent}}, type=1}
      active=true
      flags=3
      rating type=0
      controllers: 1
      state=PlaybackState {state=0, position=0, buffered position=0, speed=1.0, updated=138357479, actions=0, custom actions=[], active item id=-1, error=null}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: null
      queueTitle=null, size=0
Audio playback (lastly played comes first)
  uid=10039 packages=com.foobar2000.foobar2000
Media session config:
  media_button_receiver_fgs_allowlist_duration_ms: [cur: 10000, def: 10000]
  media_session_calback_fgs_allowlist_duration_ms: [cur: 10000, def: 10000]
  media_session_callback_fgs_while_in_use_temp_allow_duration_ms: [cur: 10000, def: 10000]
Title: Re: [1659] Странности с регистрацией медиасессии на автомобильном планшете
Post by: Artem on October 22, 2025, 22:25:12
Так, ну сессия как минимум есть в списке и она активна:

   
AIMP com.aimp.player/AIMP (userId=0)
...
active=true
...
Audio playback (lastly played comes first)
  uid=10125 packages=com.aimp.player

А это - сессии, если AIMP "протолкнуть" другим плеером (использовал Foobar2000),

Единственное, что тут меняется - количество подключенных контроллеров (с 1 до 2).
Собственно, что и говорит о том, что виджет подключился к плееру.
И почему-то у фубара стало две активных сессии...

А можете для первых двух логов еще скинуть лог от плеера? интересно, что в этот момент ему приходит от системы.
Title: Re: [1659] Странности с регистрацией медиасессии на автомобильном планшете
Post by: nackwork on October 23, 2025, 11:45:18
Добрый день, собрал информацию:

Медиасессия Stage0 (AIMP не запущен - условно-дефолтовое состояние):
d:\Zeekr Music>adb shell dumpsys media_session
MEDIA SESSION SERVICE (dumpsys media_session)

3 sessions listeners.
Global priority session is com.android.server.telecom/HeadsetMediaButton (userId=0)
  HeadsetMediaButton com.android.server.telecom/HeadsetMediaButton (userId=0)
    ownerPid=1228, ownerUid=1000, userId=0
    package=com.android.server.telecom
    launchIntent=null
    mediaButtonReceiver=null
    active=false
    flags=65537
    rating type=0
    controllers: 0
    state=null
    audioAttrs=AudioAttributes: usage=USAGE_VOICE_COMMUNICATION content=CONTENT_TYPE_SPEECH flags=0x800 tags= bundle=null
    volumeType=1, controlType=2, max=0, current=0
    metadata: null
    queueTitle=null, size=0
User Records:
Record for full_user=0
  Volume key long-press listener: null
  Volume key long-press listener package:
  Media key listener: null
  Media key listener package:
  OnMediaKeyEventDispatchedListener: added 0 listener(s)
  OnMediaKeyEventSessionChangedListener: added 1 listener(s)
    from com.aptiv.bluetooth
  Last MediaButtonReceiver: MBR {pi=PendingIntent{e09de5b: PendingIntentRecord{15596f8 com.aimp.player broadcastIntent}}, type=1}
  Media button session is null
  Sessions Stack - have 2 sessions:
    BluetoothMediaBrowserService com.android.bluetooth/BluetoothMediaBrowserService (userId=0)
      ownerPid=1568, ownerUid=1002, userId=0
      package=com.android.bluetooth
      launchIntent=null
      mediaButtonReceiver=null
      active=false
      flags=3
      rating type=0
      controllers: 2
      state=PlaybackState {state=7, position=0, buffered position=0, speed=0.0, updated=21275, actions=0, custom actions=[], active item id=-1, error=‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‏‏‎‎‏‎Bluetooth audio disconnected‎‏‎‎‏‎}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: null
      queueTitle=‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‎‎‎‏‎‏‎‎‎‎‎‏‎‏‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎‏‎‎‎‏‏‎‎Now Playing‎‏‎‎‏‎, size=0
    MediaSessionService com.arcvideo.car.video/MediaSessionService (userId=0)
      ownerPid=11304, ownerUid=10082, userId=0
      package=com.arcvideo.car.video
      launchIntent=null
      mediaButtonReceiver=MBR {pi=PendingIntent{14107d1: PendingIntentRecord{5b83236 com.arcvideo.car.video broadcastIntent}}, type=1}
      active=true
      flags=3
      rating type=0
      controllers: 1
      state=PlaybackState {state=0, position=0, buffered position=0, speed=1.0, updated=86269, actions=0, custom actions=[], active item id=-1, error=null}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: null
      queueTitle=null, size=0
Audio playback (lastly played comes first)
  uid=10125 packages=com.aimp.player
Media session config:
  media_button_receiver_fgs_allowlist_duration_ms: [cur: 10000, def: 10000]
  media_session_calback_fgs_allowlist_duration_ms: [cur: 10000, def: 10000]
  media_session_callback_fgs_while_in_use_temp_allow_duration_ms: [cur: 10000, def: 10000]


Медиасессия Stage1 (AIMP запущен, медиа виджет не работает, лог _stage1 в аттаче):
d:\Zeekr Music>adb shell dumpsys media_session
MEDIA SESSION SERVICE (dumpsys media_session)

3 sessions listeners.
Global priority session is com.android.server.telecom/HeadsetMediaButton (userId=0)
  HeadsetMediaButton com.android.server.telecom/HeadsetMediaButton (userId=0)
    ownerPid=1228, ownerUid=1000, userId=0
    package=com.android.server.telecom
    launchIntent=null
    mediaButtonReceiver=null
    active=false
    flags=65537
    rating type=0
    controllers: 0
    state=null
    audioAttrs=AudioAttributes: usage=USAGE_VOICE_COMMUNICATION content=CONTENT_TYPE_SPEECH flags=0x800 tags= bundle=null
    volumeType=1, controlType=2, max=0, current=0
    metadata: null
    queueTitle=null, size=0
User Records:
Record for full_user=0
  Volume key long-press listener: null
  Volume key long-press listener package:
  Media key listener: null
  Media key listener package:
  OnMediaKeyEventDispatchedListener: added 0 listener(s)
  OnMediaKeyEventSessionChangedListener: added 1 listener(s)
    from com.aptiv.bluetooth
  Last MediaButtonReceiver: MBR {pi=PendingIntent{46ae566: PendingIntentRecord{15596f8 com.aimp.player broadcastIntent}}, type=1}
  Media button session is com.aimp.player/AIMP (userId=0)
  Sessions Stack - have 3 sessions:
    AIMP com.aimp.player/AIMP (userId=0)
      ownerPid=19906, ownerUid=10125, userId=0
      package=com.aimp.player
      launchIntent=PendingIntent{64cf0a7: PendingIntentRecord{83f8954 com.aimp.player startActivity}}
      mediaButtonReceiver=MBR {pi=PendingIntent{46ae566: PendingIntentRecord{15596f8 com.aimp.player broadcastIntent}}, type=1}
      active=true
      flags=7
      rating type=1
      controllers: 1
      state=PlaybackState {state=3, position=9000, buffered position=0, speed=1.0, updated=780689, actions=2375167, custom actions=[Action:mName='Repeat All, mIcon=2131231018, mExtras=null, Action:mName='Previous group, mIcon=2131231017, mExtras=null, Action:mName='Add to favorites, mIcon=2131231010, mExtras=null, Action:mName='Next group, mIcon=2131231013, mExtras=null, Action:mName='Normal, mIcon=2131231022, mExtras=null], active item id=0, error=null}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: size=14, description=Stand Up For Rock 'N' Roll, Airbourne, Runnin' Wild
      queueTitle=Default, size=2
    BluetoothMediaBrowserService com.android.bluetooth/BluetoothMediaBrowserService (userId=0)
      ownerPid=1568, ownerUid=1002, userId=0
      package=com.android.bluetooth
      launchIntent=null
      mediaButtonReceiver=null
      active=false
      flags=3
      rating type=0
      controllers: 2
      state=PlaybackState {state=7, position=0, buffered position=0, speed=0.0, updated=21275, actions=0, custom actions=[], active item id=-1, error=‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‏‏‎‎‏‎Bluetooth audio disconnected‎‏‎‎‏‎}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: null
      queueTitle=‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‎‎‎‏‎‏‎‎‎‎‎‏‎‏‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎‏‎‎‎‏‏‎‎Now Playing‎‏‎‎‏‎, size=0
    MediaSessionService com.arcvideo.car.video/MediaSessionService (userId=0)
      ownerPid=11304, ownerUid=10082, userId=0
      package=com.arcvideo.car.video
      launchIntent=null
      mediaButtonReceiver=MBR {pi=PendingIntent{14107d1: PendingIntentRecord{5b83236 com.arcvideo.car.video broadcastIntent}}, type=1}
      active=true
      flags=3
      rating type=0
      controllers: 1
      state=PlaybackState {state=0, position=0, buffered position=0, speed=1.0, updated=86269, actions=0, custom actions=[], active item id=-1, error=null}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: null
      queueTitle=null, size=0
Audio playback (lastly played comes first)
  uid=10125 packages=com.aimp.player
Media session config:
  media_button_receiver_fgs_allowlist_duration_ms: [cur: 10000, def: 10000]
  media_session_calback_fgs_allowlist_duration_ms: [cur: 10000, def: 10000]
  media_session_callback_fgs_while_in_use_temp_allow_duration_ms: [cur: 10000, def: 10000]

Медиасессия Stage2 (AIMP запущен, запущен и свернут Foobar2000 - для "проталкивания" медиасессии, медиа виджет работает, управляет плеером AIMP, лог _stage2 в аттаче):
d:\Zeekr Music>adb shell dumpsys media_session
MEDIA SESSION SERVICE (dumpsys media_session)

3 sessions listeners.
Global priority session is com.android.server.telecom/HeadsetMediaButton (userId=0)
  HeadsetMediaButton com.android.server.telecom/HeadsetMediaButton (userId=0)
    ownerPid=1228, ownerUid=1000, userId=0
    package=com.android.server.telecom
    launchIntent=null
    mediaButtonReceiver=null
    active=false
    flags=65537
    rating type=0
    controllers: 0
    state=null
    audioAttrs=AudioAttributes: usage=USAGE_VOICE_COMMUNICATION content=CONTENT_TYPE_SPEECH flags=0x800 tags= bundle=null
    volumeType=1, controlType=2, max=0, current=0
    metadata: null
    queueTitle=null, size=0
User Records:
Record for full_user=0
  Volume key long-press listener: null
  Volume key long-press listener package:
  Media key listener: null
  Media key listener package:
  OnMediaKeyEventDispatchedListener: added 0 listener(s)
  OnMediaKeyEventSessionChangedListener: added 1 listener(s)
    from com.aptiv.bluetooth
  Last MediaButtonReceiver: MBR {pi=PendingIntent{46ae566: PendingIntentRecord{15596f8 com.aimp.player broadcastIntent}}, type=1}
  Media button session is com.aimp.player/AIMP (userId=0)
  Sessions Stack - have 4 sessions:
    AIMP com.aimp.player/AIMP (userId=0)
      ownerPid=19906, ownerUid=10125, userId=0
      package=com.aimp.player
      launchIntent=PendingIntent{64cf0a7: PendingIntentRecord{83f8954 com.aimp.player startActivity}}
      mediaButtonReceiver=MBR {pi=PendingIntent{46ae566: PendingIntentRecord{15596f8 com.aimp.player broadcastIntent}}, type=1}
      active=true
      flags=7
      rating type=1
      controllers: 2
      state=PlaybackState {state=3, position=9000, buffered position=0, speed=1.0, updated=780689, actions=2375167, custom actions=[Action:mName='Repeat All, mIcon=2131231018, mExtras=null, Action:mName='Previous group, mIcon=2131231017, mExtras=null, Action:mName='Add to favorites, mIcon=2131231010, mExtras=null, Action:mName='Next group, mIcon=2131231013, mExtras=null, Action:mName='Normal, mIcon=2131231022, mExtras=null], active item id=0, error=null}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: size=14, description=Stand Up For Rock 'N' Roll, Airbourne, Runnin' Wild
      queueTitle=Default, size=2
    BluetoothMediaBrowserService com.android.bluetooth/BluetoothMediaBrowserService (userId=0)
      ownerPid=1568, ownerUid=1002, userId=0
      package=com.android.bluetooth
      launchIntent=null
      mediaButtonReceiver=null
      active=false
      flags=3
      rating type=0
      controllers: 2
      state=PlaybackState {state=7, position=0, buffered position=0, speed=0.0, updated=21275, actions=0, custom actions=[], active item id=-1, error=‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‏‏‎‎‏‎Bluetooth audio disconnected‎‏‎‎‏‎}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: null
      queueTitle=‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‎‎‎‏‎‏‎‎‎‎‎‏‎‏‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎‏‎‎‎‏‏‎‎Now Playing‎‏‎‎‏‎, size=0
    MediaSessionService com.arcvideo.car.video/MediaSessionService (userId=0)
      ownerPid=11304, ownerUid=10082, userId=0
      package=com.arcvideo.car.video
      launchIntent=null
      mediaButtonReceiver=MBR {pi=PendingIntent{14107d1: PendingIntentRecord{5b83236 com.arcvideo.car.video broadcastIntent}}, type=1}
      active=true
      flags=3
      rating type=0
      controllers: 1
      state=PlaybackState {state=0, position=0, buffered position=0, speed=1.0, updated=86269, actions=0, custom actions=[], active item id=-1, error=null}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: null
      queueTitle=null, size=0
    foobar2000 com.foobar2000.foobar2000/foobar2000 (userId=0)
      ownerPid=21362, ownerUid=10039, userId=0
      package=com.foobar2000.foobar2000
      launchIntent=null
      mediaButtonReceiver=MBR {pi=PendingIntent{939489c: PendingIntentRecord{62ba2a5 com.foobar2000.foobar2000 broadcastIntent}}, type=1}
      active=true
      flags=3
      rating type=0
      controllers: 1
      state=PlaybackState {state=2, position=0, buffered position=0, speed=0.0, updated=942471, actions=895, custom actions=[], active item id=-1, error=null}
      audioAttrs=AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x800 tags= bundle=null
      volumeType=1, controlType=2, max=0, current=0
      metadata: size=6, description=Stalingrad, Accept, Stalingrad
      queueTitle=null, size=0
Audio playback (lastly played comes first)
  uid=10125 packages=com.aimp.player
Media session config:
  media_button_receiver_fgs_allowlist_duration_ms: [cur: 10000, def: 10000]
  media_session_calback_fgs_allowlist_duration_ms: [cur: 10000, def: 10000]
  media_session_callback_fgs_while_in_use_temp_allow_duration_ms: [cur: 10000, def: 10000]
Title: Re: [1659] Странности с регистрацией медиасессии на автомобильном планшете
Post by: Artem on October 23, 2025, 12:07:07
А можно еще выгрузку из системного лога (logcat) с момента Stage0-2?
Title: Re: [1659] Странности с регистрацией медиасессии на автомобильном планшете
Post by: nackwork on October 23, 2025, 13:30:54
Добавил в аттач
Title: Re: [1659] Странности с регистрацией медиасессии на автомобильном планшете
Post by: Artem on October 25, 2025, 21:28:01
Спасибо, а еще такой вопрос: v4.20 работает на планшете? или такие же проблемы?
Title: Re: [?] [1659] Странности с регистрацией медиасессии на автомобильном планшете
Post by: nackwork on October 28, 2025, 01:15:07
Вот все эти логи как раз и снимал на 4.20. С бетами побаловался и откатился на стабильную. Поведение, в общем-то, одинаковое.
Title: Re: [?] [1659] Странности с регистрацией медиасессии на автомобильном планшете
Post by: Artem on October 28, 2025, 23:47:26
А прошлые версии плеера работали? или всегда такое поведение было?
Title: Re: [?] [1659] Странности с регистрацией медиасессии на автомобильном планшете
Post by: nackwork on November 05, 2025, 12:22:19
Свежее авто, поэтому - сильно далеко назад не пробовал. Если дадите отсечку, какие версии попробовать, могу поэкспериментировать.

Пока решал (и решил) проблему отсутствия SAF на планшете, из-за чего невозможно было дать плееру полный доступ к папкам с контентом и сохранить настройки, т.к. на авто не было не одной программы с активити и интентом OPEN_DIRECTORY_TREE.
Title: Re: [?] [1659] Странности с регистрацией медиасессии на автомобильном планшете
Post by: Artem on November 05, 2025, 13:03:22
Если дадите отсечку, какие версии попробовать, могу поэкспериментировать.

Вопрос был про другое: "оно вообще когда-нибудь работало на этом планшете?".

Пока решал (и решил)

Как именно решили? У нас для таких случаев есть nosaf-версия приложения.
Title: Re: [?] [1659] Странности с регистрацией медиасессии на автомобильном планшете
Post by: nackwork on December 03, 2025, 17:40:01
Quote
Как именно решили? У нас для таких случаев есть nosaf-версия приложения.

Решил установкой приложения DocumentsUI (com.android.documentsui), которое зарегистрировало нужные активити. Т.к. проблема, в общем-то касалась всех приложений, которые используют SAF.

Quote
Вопрос был про другое: "оно вообще когда-нибудь работало на этом планшете?".
Нет, в соответствии с ожиданиями не работало. Всегда - так, как в первом посте описано.