无法使用 MediaBrowserServiceCompat

Can't use MediaBrowserServiceCompat

我是 android 开发的新手。我想创建一个以客户端-服务器方式运行的音乐播放器。我现在正在尝试创建服务器部分。我发现我可以使用 MediaBrowserServiceCompat 实现这一点,正如官方文档 here. But when I tried to use it in my project it says Unresolved reference: MediaBrowserServiceCompat 中所说 尽管我已将 Android Studio 设置为自动导入所需的库,但我尝试显式导入 android.support.v4.*android.support.*androidx.*,希望它可以工作,但没有成功结果。所以我转到 UAMP(Universal Android Music Player) for some help. I found the statement import androidx.media.MediaBrowserServiceCompat in this file. But I couldn't find any library named so

的 GitHub 仓库

为什么我的清单说 MediaPlaybackService must extend android.app.service

我该如何使用它? 谢谢!

编辑:我做了一些研究和修补。我尝试将我的清单中的服务名称和关联的 class 名称也更改为 MyMediaBrowserServiceCompat 并且神奇地(有点)起作用了。所以现在,我的问题是,这是正常行为吗?更改服务名称真的会影响这种情况吗?如果是这样,它究竟如何在其他人的机器上使用不同的名称(与 class 名称本身不相似的东西)?其次,现在我的代码显示 There's a cycle in the inheritance hierarchy for this type I searched the web and found this. So I know what that message means but I can't figure out how to solve it in this case. And my Manifest still says the same: MyMediaBrowserServiceCompat must extend android.app.service

我的猜测是这与MediaBrowserService所在的依赖关系有关。没有看到 build.gradle 中的依赖项部分很难知道,但 MediaBrowserService 位于 implementation 'androidx.media:media:1.1.0' 中。尝试添加它,您应该能够找到它。

有关 There's a cycle in the inheritance hierarchy for this type 消息的注释:那是因为您实际上指的是与 parent 和 child 相同的 class,而那不会它不会工作,因为它会要求 parent 并自行恢复。 "working" 的原因是因为您现在只引用自 class MyMediaBrowserService 存在以来可以找到的实际文件。您需要更新您的服务以实际继承 MediaBrowserServiceCompat 以使其正常工作,并且当您具有它的依赖项时应该可以正常工作。

在Android Developer中,他们并没有说清楚如何在Audio app overview article(if you are following this article). But you can implement with the code below or update the newest version of this support library in this article.

dependencies {
    implementation "androidx.media:media:1.3.1"
}