Почему MediaBrowserCompat getSessionToken () возвращает ноль только на Android 5.0, 5.0.1 и 5.0.2? - PullRequest
0 голосов
/ 24 июня 2019

В моем приложении Music Player я использовал комбинацию MediaController и MediaBrowser для воспроизведения музыки, подобной упомянутой ЗДЕСЬ , это работало нормально на всех устройствах, но после выпуска приложения у меня были сбои с 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)

, поэтому эта ошибка очевидна, потому что я передал значение null в конструкторе MediaControllerCompat, который принимает только ненулевое значение, нотакже упоминается, что getSessionToken не вернет ноль, но все еще не знает, почему он возвращает ноль только на версиях Android 5.0, 5.0.1 и 5.0.2

...