gpt4 book ai didi

android - 如何更新 Android Auto 媒体浏览器中的默认错误文本?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:42 28 4
gpt4 key购买 nike

我正在开发 Android 汽车媒体应用程序,我想在由于网络错误等原因加载项目失败时设置自定义错误文本(或自定义背景文本)。默认情况下只有两种极端情况:

  1. 当 MediaBrowserServiceCompat 的 onLoadChildren() 方法返回空列表时,将显示“无项目”文本。
  2. 出现错误时会出现带有感叹号图标的通用“出错了”文本。

有什么方法可以更新一个或另一个吗?到目前为止,我发现只有一个媒体应用程序可以在 Android auto 中为第二种情况显示自定义消息。这是 Spotify,带有一条消息“Spotify 当前已设置为离线”,但默认错误图标是相同的。我在 MediaBrowserServiceCompat 文档中找不到任何关于错误消息的提及,将不胜感激任何帮助。

到目前为止,我尝试过为媒体 session 设置错误状态并返回 null 作为结果:

@Override
public void onLoadChildren(@NonNull final String parentId, @NonNull final Result<List<MediaBrowserCompat.MediaItem>> result) {
// some logic ...

PlaybackStateCompat errorState = new PlaybackStateCompat.Builder()
.setActions(PlaybackStateCompat.ACTION_STOP)
.setErrorMessage(PlaybackStateCompat.ERROR_CODE_UNKNOWN_ERROR, "MY CUSTOM ERROR TEXT!").build();
mediaSession.setPlaybackState(errorState);
// result.sendError(new Bundle()); // <- does nothing
// result.sendResult(Collections.emptyList()); // default "No items" message will be displayed
result.sendResult(null); // <-- this should trigger an error
}

MediaBrowserServiceCompat.Result 有一个方法 sendError 但它应该只在自定义操作时调用(根据文档)并且没有如何使用它的示例:

https://developer.android.com/reference/androidx/media/MediaBrowserServiceCompat.Result.html#sendError(android.os.Bundle)

最佳答案

我找到了答案,MediaSessionCompat 的播放状态应该更新为 STATE_ERROR。这是显示错误的示例代码:

void setErrorState(String errorMessage) {
PlaybackStateCompat playbackState = new PlaybackStateCompat.Builder()
.setState(PlaybackStateCompat.STATE_ERROR, 0, 0f)
.setErrorMessage(
PlaybackStateCompat.ERROR_CODE_AUTHENTICATION_EXPIRED,
errorMessage
)
.build();
mediaSession.setPlaybackState(playbackState);
}

关于android - 如何更新 Android Auto 媒体浏览器中的默认错误文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57321200/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com