Итак, как говорится в вопросе: я пытаюсь заставить работать разбиение на страницы для Android Auto с media3, но документации, похоже, либо нет, либо я не могу ее найти.
В настоящее время у меня есть MediaService, который расширяет MediaLibraryService
class MediaService : MediaLibraryService() {
// extra code here
override fun onGetLibraryRoot(
session: MediaLibrarySession,
browser: ControllerInfo,
params: LibraryParams?
): ListenableFuture<LibraryResult<MediaItem>> {
// get root here
}
override fun onGetItem(
session: MediaLibrarySession,
browser: ControllerInfo,
mediaId: String
): ListenableFuture<LibraryResult<MediaItem>> {
// get item with id
}
override fun onGetChildren(
session: MediaLibrarySession,
browser: ControllerInfo,
parentId: String,
page: Int,
pageSize: Int,
params: LibraryParams?
): ListenableFuture<LibraryResult<ImmutableList<MediaItem>>> {
// get children of item with id
}
// extra code here
}
Разбивка на страницы должна быть достигнута с помощью page и pageSize в onGetChildren, но это всегда 0 и Int.MAX_VALUE. Как сообщить Android Auto, что он должен запрашивать разные значения или разбивать на страницы?
После небольшого изучения системы отслеживания проблем Android Auto и после того, как я задал несколько вопросов в системе отслеживания проблем Media3 Github , я обнаружил, что настраиваемая нумерация страниц для Android Auto не поддерживается из-за рекомендаций по отвлечению внимания водителя, которые, я думаю, могут можно найти здесь.
Таким образом, исходя из комментария к средству отслеживания проблем Android Auto, количество возвращаемых элементов должно быть ограничено, поскольку Android Auto не будет отправлять информацию о разбивке на страницы в Media3. Это означает, что для Android Auto аргументы page и pageSize можно игнорировать.