Я пишу приложение для Android, которое должно загружать фотографии в Facebook.
Все работает отлично, кроме одной вещи. Когда я впервые вызвал метод Facebook.authorize (), было показано диалоговое окно Facebook с запрошенными разрешениями и кнопками «Разрешить» / «Не разрешать». Это было хорошо. Но когда я запускаю свое приложение в течение второго времени, у меня появляется тот же диалог, но с сообщением, что мое приложение уже разрешено, и предложением нажать кнопку ОК.
Есть ли способ избежать этого второго диалога? Должен ли я пропустить метод авторизации в некоторых условиях?
Я пытался вызвать метод Facebook.isSessionValid () перед авторизацией, но это не помогло.
Вот мой упрощенный код:
mFacebook = new Facebook(APPLICATION_ID);
mFacebookAsync = new AsyncFacebookRunner(mFacebook);
if (mFacebook.isSessionValid()) {
uploadPictureFile();
}
else {
mFacebook.authorize(this, new String[] {"publish_stream"}, new Facebook.DialogListener() {
@Override
public void onFacebookError(FacebookError e) {
Toast.makeText(PhotoFeederFacebookSendActivity.this, "Facebook error: " + e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
finishWithResultCode(RESULT_CANCELED);
}
@Override
public void onError(DialogError e) {
Toast.makeText(PhotoFeederFacebookSendActivity.this, "Facebook dialog error: " + e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
finishWithResultCode(RESULT_CANCELED);
}
@Override
public void onComplete(Bundle values) {
uploadPictureFile();
}
@Override
public void onCancel() {Toast.makeText(PhotoFeederFacebookSendActivity.this, "Facebook authorization cancelled.", Toast.LENGTH_LONG).show();
finishWithResultCode(RESULT_CANCELED);
}
});
}
А вот мой метод onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
mFacebook.authorizeCallback(requestCode, resultCode, data);
}
Любая помощь приветствуется. Спасибо.