Как перейти к следующему действию сразу после входа в facebook SDK 3.0 в Android

я использую facebook SDK 3.0, когда я вхожу в facebook, он возвращается к экрану входа, чем переходит к следующему действию, но я хочу перейти непосредственно к следующему действию.

Это мой код: -

if (session.isOpened()) {
        token = session.getAccessToken();
        Log.i("TAG", "Access Token" + token);
        Request.executeMeRequestAsync(session,new Request.GraphUserCallback() {
            @Override
            public void onCompleted(GraphUser user, Response response) {
                    if (user != null) {
                        id = user.getId();
                        Log.i("TAG", "User ID " + user.getId());
                        Log.i("TAG", "Email "+ user.asMap().get("email"));

                            try {
                                URL image_value = new URL("http://graph.facebook.com/"+id+"/picture?type=large" );
                                profPict=BitmapFactory.decodeStream(image_value.openConnection().getInputStream());

                                    } catch (MalformedURLException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }

                                    //http://graph.facebook.com/4/picture

                                    Intent i = new Intent(MainActivity.this,Next.class);
                                     i.putExtra("BitmapImage", profPict);  
                                    startActivity(i);
                                    // lblEmail.setText(user.asMap().get("email").toString());
                            }
                    }
            });
}

И onActivityResult()

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Session.getActiveSession().onActivityResult(this, requestCode,
            resultCode, data);}

person Arun    schedule 04.05.2013    source источник
comment
тоже ищу такие :-)   -  person user    schedule 04.05.2013


Ответы (2)


Эй, пожалуйста, вставьте следующий код в блок onActivityResult:

Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
    if (Session.getActiveSession() != null || Session.getActiveSession().isOpened()){
                 Intent i = new Intent(MainActivity.this,Next.class);
                startActivity(i);
            }

Это прекрасно работает.

person Seenu69    schedule 20.07.2013

В onActvityResult() проверьте, равен ли результат RESULT_OK, если да, то начните новое действие. Я предполагаю, что вы не начинаете какую-либо другую деятельность для получения результата.

Обратитесь к этому коду — FbLoginActivity. Это всего лишь схема, которой вы можете следовать, чтобы войти в Facebook.

Вы также можете обратиться к этому-> FbLoginButton.

person Vishal Pawale    schedule 04.05.2013
comment
Нет, я не начинаю какую-либо другую деятельность ради результата. я все еще не получаю. - person Arun; 04.05.2013
comment
Теперь я использую вот так, но все еще не работает: @Override public void onActivityResult (int requestCode, int resultCode, Intent data) { super.onActivityResult (requestCode, resultCode, data); Session.getActiveSession().onActivityResult(это, код запроса, код результата, данные); if(resultCode==RESULT_OK) { Intent i = new Intent(MainActivity.this,Profil.class); i.putExtra(BitmapImage, profPict); i.putExtra (идентификатор, идентификатор); i.putExtra(emailid,email_mail); начать активность (я); } } - person Arun; 04.05.2013
comment
вы отлаживали приложение и проверяли, каково значение resultCode? - person Vishal Pawale; 04.05.2013
comment
значение resultCode равно -1, и управление после возврата к основному действию переходит к следующему действию без получения данных. плз посоветуйте мне срочно нужно - person Arun; 04.05.2013
comment
Хорошо... Я надеюсь, что вы зарегистрировали SessionStatusCallback в своей деятельности, поэтому в своем SessionStatusCallback поместите код, который проверяет, открыт ли сеанс или нет, и если он открыт, затем выполните мой запрос и по завершении моего запроса запустите новое действие. В основном поместите код, который вы разместили в своем вопросе, в SessionStatusCallback. - person Vishal Pawale; 04.05.2013
comment
@ Вишал Павале, я не получаю этот код, и мне нужно срочно, не могли бы вы мне помочь? - person Arun; 11.05.2013
comment
Ооо, извините, плохо... это было для публикации публикации на Facebook, обратитесь к этому коду - gist.github. com/vishalpawale/5560725 Это всего лишь схема, которой вы можете следовать, чтобы войти в Facebook. - person Vishal Pawale; 11.05.2013
comment
Вы также можете сослаться на это-› developers.facebook.com/docs/reference/android /3.0/Кнопка входа - person Vishal Pawale; 11.05.2013
comment
большое спасибо, сэр!!!! теперь все работает. я не знаю, как я могу поблагодарить вас .. еще раз спасибо ... - person Arun; 12.05.2013
comment
но когда я выхожу из системы, возникает проблема с повторным входом в систему: - я использую этот код для выхода из системы: - private void logout(){ Session session = Session.getActiveSession(); session.closeAndClearTokenInformation(); // вернуть пользователя на экран входа в систему Toast.makeText(context,Successfully Logedout,Toast.LENGTH_LONG).show(); startActivity(новое намерение(getApplicationContext(), Main1Activity.class)); // убедиться, что пользователь не может получить доступ к странице после finish(); } - person Arun; 12.05.2013
comment
и это будет else { Log.e(ELSEEEEEEE, EMAILLLL); // Очистить всю информацию о сеансе и попросить пользователя // снова войти в систему Session session = Session .getActiveSession(); если (сессия!= null) { session.closeAndClearTokenInformation(); } } активности входа в систему, какие-либо предложения, пожалуйста? - person Arun; 12.05.2013
comment
Вы имеете в виду код, который есть на github? Если да, то измените строку № 50, я изменил ее на github, вы можете сослаться на нее, кстати, нужно ли снова пытаться войти в систему? - person Vishal Pawale; 12.05.2013
comment
да, сэр, я ссылаюсь на код в github и номер строки. 50 это :-if(!session.isOpened()) { .. и я заменяю старый :-&& !session.isClosed(). - person Arun; 13.05.2013
comment
это не работает, сэр, это дает исключение, когда я снова вхожу в систему после выхода из системы. Исключение: -- java.lang.UnsupportedOperationException: Session: была предпринята попытка открыть уже открытую сессию. .java:947).. - person Arun; 13.05.2013