为什么MediaBrowserCompat getSessionToken()仅在android 5.0、5.0.1和5.0.2上返回null?

时间:2019-06-24 08:12:27

标签: android android-mediaplayer mediacontroller android-mediasession mediabrowserservicecompat

在我的音乐播放器应用程序中,我使用MediaController和MediaBrowser组合来播放HERE之类的音乐,在所有设备上都运行良好,但是在发布应用程序后,我从Android 5.0和5.0.1版崩溃了,并且同样是5.0.2,因为MediaBrowser.getSessionToken()返回了null sessionToken,当我在getSessionToken()方法中对MediaBrowserCompat对象调用onConnected时发生了崩溃。

inner class MediaBrowserConnectionCallback : MediaBrowserCompat.ConnectionCallback() {
    override fun onConnected() {
        mediaController.value = MediaControllerCompat(context, mediaBrowser.sessionToken)//HERE sessionToken is null on andorid os version 5
    }
}

这是我要崩溃的

Fatal Exception: java.lang.IllegalArgumentException: sessionToken must not be null
   at android.support.v4.media.session.MediaControllerCompat.<init> + 275(MediaControllerCompat.java:275)
   at com.mypackagename.appname.screenmain.BrowseManager$MediaBrowserConnectionCallback.onConnected + 135(BrowseManager.kt:135)
   at android.support.v4.media.MediaBrowserCompat$ConnectionCallback$StubApi21.onConnected + 669(MediaBrowserCompat.java:669)
   at android.support.v4.media.MediaBrowserCompatApi21$ConnectionCallbackProxy.onConnected + 103(MediaBrowserCompatApi21.java:103)
   at android.media.browse.MediaBrowser$2.run + 410(MediaBrowser.java:410)

所以这个错误是显而易见的,因为我在MediaControllerCompat的构造函数中传递了null,该构造函数仅接受非null,但是还提到getSessionToken不会返回null,但仍然不知道为什么仅在android v 5.0、5.0.1和5.0.2版本上返回null

0 个答案:

没有答案