android中的MediaSessionCompat和MediaSession有什么区别?以及为什么 androidx.media2 androidx.media 都存在?

the*_*900 5 android kotlin android-studio android-jetpack

我用 kotlin 开始了新的 android 应用程序项目。我的 sdk gradle 配置是 compileSdkVersion 29 和 buildToolsVersion "29.0.1"

我试图制作一个功能,即蓝牙耳机的重新映射按钮。所以我发现我必须处理 ACTION_MEDIA_BUTTON。

看起来MediaSession晚于MediaSessionCompat。但我不知道我应该用什么。

关于 androidx。我想知道他们为什么像 androidx.media 和 androidx.media2 这样划分包?

the*_*900 4

我找到了。

假设您使用的 kotlin 至少为 API 级别 28 SDK 版本。

根据https://developer.android.com/guide/topics/media-apps/media-apps-overview#compat-library MediaSessionCompat 是一个向后移植,用于支持早于 Android 4.1(API 级别 16)以及 android 5.0 发布MediaSession 的版本版本出来。

AndroidX 是android 支持库的下一个库。它需要 Android 9.0(API 级别 28)。

在 androidx 中,包 androidx.media 用于支持兼容性,包 androidx.media2 是 android.media.* 的下一个版本,添加了 API 级别 21。例如MediaSession

所以如果你想使用 android.support.v4.media.session 包中的一些类,它是媒体兼容库。你应该添加implementation 'com.android.support:support-media-compat:28.0.0'你的build.gradle