В моем приложении я интегрировал FB SDK 4.26.0 для функции обмена песнями. Диалог обмена работает нормально, и я могу поделиться как с приложением Facebook, так и с WebDialog. Однако после успешного / неудачного обмена мой обратный вызов не работает, из-за чего я не могу дать ответ. Так что я даже не могу показать тостовое сообщение. Вот мой код:
private CallbackManager callbackManager;
private ShareDialog shareDialog;
private String title;
private String status;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
searchAlbumArt(PlayerService.getCurrentTrack().getArtist(), PlayerService.getCurrentTrack().getAlbum());
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(this);
setTheme(ThemeUtils.getTheme(getApplicationContext()));
setContentView(R.layout.activity_share_song);
initializeComponents(); // Initialize the Components
initializeListeners(); // Initialize the Listeners
callbackManager = CallbackManager.Factory.create();
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
Toast.makeText(getApplicationContext(), "Share success!", Toast.LENGTH_SHORT).show();
Log.e(TAG, "Fb onSuccess");
}
@Override
public void onCancel() {
Toast.makeText(getApplicationContext(), "Did not share", Toast.LENGTH_SHORT).show();
Log.e(TAG, "Fb onCancel");
}
@Override
public void onError(FacebookException error) {
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show();
Log.e(TAG, "Fb onError");
}
}, 90);
}
private void initializeComponents() {
btnShareSongfb = (Button) findViewById(R.id.fb_share_button);
ShareButton shareButton = (ShareButton) findViewById(R.id.fb_share_button);
ShareLinkContent content = generateFbStatus();
shareButton.setShareContent(content);
}
private ShareLinkContent generateFbStatus() {
status = "xxx";
title = "yyy";
ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse( (getResources().getString(R.string.google_play_url))))
.setQuote(title)
.setShareHashtag(new ShareHashtag.Builder()
.setHashtag(status)
.build())
.build();
return content;
}
}
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
Я пытаюсь понять, что я сделал неправильно. Любая помощь будет благодарна. спасибо.