Я пытаюсь отправить объект, созданный из API Spotify (экземпляр SpotifyAppRemote) из моего класса MainActivity, в BackgroundService (реализованный как IntentService).
Так как я не могу использовать parcelable для отправки моего объекта, так как не могу контролировать API, я пытался использовать GSON для отправки его через метод putExtra из моего намерения, например:
intent.putExtra("spotifyRemote", gson.toJson(mSpotifyAppRemote, SpotifyAppRemote.class));
Однако во время выполнения я получаю сообщение об ошибке:
java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: com.spotify.protocol.types.ImageUri. Forgot to register a type adapter?
Есть ли другой способ отправить этот объект в мою Службу? Поиск этого сообщения об ошибке действительно не помог.
Вот код из моего класса MainActivity:
@Override
public void onConnected(SpotifyAppRemote spotifyAppRemote) {
mSpotifyAppRemote = spotifyAppRemote;
getCurrentTrack();
// Now you can start interacting with App Remote
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
infoText.setText("Successfully started!");
counter = 1;
numSongs = Integer.parseInt(mEdit.getText().toString());
PlayerApi playerApi = mSpotifyAppRemote.getPlayerApi();
playerApi.seekTo(0);
playerApi.resume();
Intent intent = new Intent(MainActivity.this, BackgroundService.class);
intent.putExtra("counter", counter);
intent.putExtra("numSongs", numSongs);
intent.putExtra("firstTrack", gson.toJson(curTrack, Track.class));
intent.putExtra("spotifyRemote", gson.toJson(mSpotifyAppRemote, SpotifyAppRemote.class));
startService(intent);
}
});
}