У меня проблема, как следует из названия. Я делаю вызов authorize (), но никогда не могу вызвать authorizeCallback (), потому что onActivityResult () никогда не вызывается. SSO завершается, потому что он показывает экран разрешений (с «Не разрешать / разрешать»), а утверждение приложения отображается на моей странице настроек Facebook. Есть идеи? Я думал, что это может иметь какое-то отношение к launchMode действия, но удалил «singleInstance», и это не имело никакого значения.
Как я упоминал выше, я могу подтвердить, что активность разрешений запущена в Facebook.java.
try {
Log.e("@@@", "Starting activity");
activity.startActivityForResult(intent, activityCode);
} catch (ActivityNotFoundException e) {
didSucceed = false;
}
Для чего я могу подтвердить код, указанный ниже.
Я реализовал метод authorizeCallback () в onActivityResult ():
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
mStateHolder.getFacebook().authorizeCallback(requestCode, resultCode, data);
}
.. но это никогда не называется. Метод авторизации, который я использовал, выглядит следующим образом:
facebook.authorize(this, new String[]{ "user_birthday" }, new DialogListener() {
public void onComplete(Bundle values) {
Log.e(TAG, "onComplete()");
// I make a request here..
}
// ...with the other methods as well
}
Другая потенциально полезная информация:
У меня Nexus One, 2.3.4
Приложение Facebook установлено
Это работает нормально, если я принудительно вызываю метод Dialog, но я пытаюсь заставить SSO работать.
РЕДАКТИРОВАТЬ: Ург! После долгих поисков я нашел проблему. В намерении был неестественный флаг Intent.FLAG_ACTIVITY_NO_HISTORY (который не сохраняет активность в стеке). Спасибо всем за попытку ответить.
EDIT2: удаление launchMode = singleInstance тоже имеет значение .. Я начал получать сообщение об ошибке «Не удалось прочитать подпись вызывающего пакета».