MediaBrowser和MediaBrowserService连接操作时,传入的回调不回调
我想要的结果:MediaBrowser.ConnectionCallback回调连接结果
客户端代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "onCreate: ");
initView();
mMediaBrowser = new MediaBrowser(this, new ComponentName(this, MusicService.class),mConnectionCallback,null );
}
@Override
protected void onStart() {
super.onStart();
mMediaBrowser.connect();
}
@Override
protected void onStop() {
super.onStop();
mMediaBrowser.disconnect();
}
private void initView() {
mList = new ArrayList<>();
}
private MediaBrowser.ConnectionCallback mConnectionCallback = new MediaBrowser.ConnectionCallback(){
@Override
public void onConnected() {
Log.d(TAG, "onConnected: ");
if (mMediaBrowser.isConnected()){
String mediaId = mMediaBrowser.getRoot();
mMediaBrowser.unsubscribe(mediaId);
mMediaBrowser.subscribe(mediaId,mBrowserSubscriptionCallback);
}
}
@Override
public void onConnectionSuspended() {
Log.d(TAG, "onConnectionSuspended: ");
}
@Override
public void onConnectionFailed() {
Log.d(TAG, "onConnectionFailed: ");
}
};
服务端代码:
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "onCreate: ");
mPlaybackState = new PlaybackState.Builder()
.setState(PlaybackState.STATE_NONE, 0, 1.0f)
.build();
mSession = new MediaSession(this, "MusicService");
mSession.setCallback(SessionCallback);//设置回调
mSession.setFlags(MediaSession.FLAG_HANDLES_TRANSPORT_CONTROLS);
mSession.setPlaybackState(mPlaybackState);
setSessionToken(mSession.getSessionToken());
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnCompletionListener(this);
}
private MediaSession.Callback SessionCallback = new MediaSession.Callback() {
@Override
public void onCommand(@NonNull String command, @Nullable Bundle args, @Nullable ResultReceiver cb) {
super.onCommand(command, args, cb);
}
};
您的每一个用心回答,都会让这个世界变得更美好一些!