其他应用要如何释放mediasession,才会回调到token为null的case
   manager.addOnMediaKeyEventSessionChangedListener((Executor) Runnable::run,
        new MediaSessionManager.OnMediaKeyEventSessionChangedListener() {
            @Override
            public void onMediaKeyEventSessionChanged(@NonNull String pkgName,
                                                      @Nullable MediaSession.Token token) {
                Logger.tag(TAG).i("onMediaKeyEventSessionChanged pkgName: "
                        + pkgName + ", MediaSession.Token: " + token);
                if (!TextUtils.isEmpty(pkgName) && token == null) {
                    updateMediaSessionByPlayer();
                }
            }
        });
//如果存在多个MediaSession 可以这样 MediaSessionManager mediaSessionManager = (MediaSessionManager) getSystemService(Context.MEDIA_SESSION_SERVICE); List<MediaController> activeSessions = mediaSessionManager.getActiveSessions(null); MediaController mediaController = null; for (MediaController session : activeSessions) { if (session.getPackageName().equals("你的应用包名")) { mediaController = session; break; } } //其他步骤和另一个评论差不多//获取到当前正在运行的 MediaSession 对象。 MediaSessionManager mediaSessionManager = getSystemService(Context.MEDIA_SESSION_SERVICE); MediaController mediaController = mediaSessionManager.getActiveSession(); //检查当前是否存在活跃的 MediaSession。 if (mediaController != null) { mediaController.getTransportControls().stop(); // 停止播放媒体 mediaController.unregisterCallback(callback); // 取消回调监听 mediaController.release(); // 释放 MediaSession } //释放完 MediaSession 后,将 MediaSession 的 Token 设置为空。 mediaController = null; //通过以上步骤,释放 MediaSession 并将 Token 设置为 null,就可以触发回调到 Token 为 null 的情况