Si (session.isOpen ()), el inicio de sesión de Facebook en Android siempre devuelve falso

Estoy tratando de implementar una actividad simple en mi aplicación de Android, donde se le pide a un usuario que inicie sesión a través de Facebook para que se recuperen los "me gusta" del usuario. Así que, obviamente, primero estoy probando un inicio de sesión simple a través de Facebook. Estoy utilizando el código exacto que tienen en 'Cómo comenzar con el SDK de Facebook para Android' - Paso 6 (https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/) pero por alguna razón no funciona. Cuando depuré el código me di cuenta de que la siguiente condición:

if(session.isOpen()) 

esSIEMPRE devolviendo falso aunque ya hubiera iniciado sesión en facebook. He intentado todo para solucionarlo, pero nada parece estar funcionando.

¿Alguien ha tenido este problema o sabe cómo solucionarlo?

EDITAR: Estoy probando esta prueba en mi teléfono directamente, no en un emulador. No sé si eso podría ser un problema.

¡Gracias por adelantado!

Y probé esta soluciónsession.isOpened () devuelve falso aunque haya iniciado sesión correctamente en Facebook pero al usar java 6 o 7 aun daban la misma clave hash.

EDIT 2: También he intentado lo mismo pero con un enfoque ligeramente diferente.http://sonyarouje.com/2011/09/18/facebook-hash-key-for-android-apps/ Sigo teniendo el mismo problema. lossession.isOpen () El método siempre devuelve falso.

EDITAR 3: Aquí está el último código que he probado. No creo que haya ningún error en el logcat. De todos modos lo enlazaré aquí por si me falta algo.

package com.example.danandroidapp;
import java.util.Arrays;

import com.facebook.FacebookException;
import com.facebook.Request;
import com.facebook.Response;
import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.model.GraphUser;
import com.facebook.widget.LoginButton;
import com.facebook.widget.LoginButton.OnErrorListener;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

    private String TAG = "MainActivity";
    private TextView lblEmail;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        lblEmail = (TextView) findViewById(R.id.lblEmail);

        LoginButton authButton = (LoginButton) findViewById(R.id.authButton);

        authButton.setOnErrorListener(new OnErrorListener() {
            @Override
            public void onError(FacebookException error) {
                Log.i(TAG, "Error " + error.getMessage());
            }
        });

        authButton.setReadPermissions(Arrays.asList("basic_info", "email"));
        authButton.setSessionStatusCallback(new Session.StatusCallback() {

        @Override
        public void call(Session session, SessionState state, Exception exception) {
            if(session.isOpened()) {
                Log.i(TAG, "Access Token " + session.getAccessToken());
                Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {

                    @Override
                    public void onCompleted(GraphUser user, Response response) {
                        if(user != null) {
                            Log.i(TAG, "User ID " + user.getId());
                            Log.i(TAG, "Email " + user.asMap().get("email"));
                            lblEmail.setText(user.asMap().get("email").toString());
                        }
                    }
                });
            }
        }
    });
}

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

Y mi salida logcat:https://www.dropbox.com/s/7qg9zbhlpikfovf/log.txt

Respuestas a la pregunta(4)

Su respuesta a la pregunta