Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 创建Facebook会话对象并从中登录_Android_Facebook_Session_Login_Facebook Sdk 3.0 - Fatal编程技术网

Android 创建Facebook会话对象并从中登录

Android 创建Facebook会话对象并从中登录,android,facebook,session,login,facebook-sdk-3.0,Android,Facebook,Session,Login,Facebook Sdk 3.0,我试图创建一个简单的东西,当用户点击按钮,然后facebook登录过程应该工作。我使用不推荐的方法完成了这项工作,并在登录之前将其保存到应用程序中。在FB SDK 3.5中,我使用session类通过以下许多教程创建该登录,并且它们在活动开始时也将使用FC。这是我的密码 public class MainActivity extends Activity implements OnClickListener { TextView username; String APP_ID; Button

我试图创建一个简单的东西,当用户点击按钮,然后facebook登录过程应该工作。我使用不推荐的方法完成了这项工作,并在登录之前将其保存到应用程序中。在FB SDK 3.5中,我使用session类通过以下许多教程创建该登录,并且它们在活动开始时也将使用FC。这是我的密码

public class MainActivity extends Activity implements OnClickListener {

TextView username;
String APP_ID;
Button btn_login;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);     
    APP_ID = getString(R.string.app_id);
    btn_login = (Button)findViewById(R.id.login);
    btn_login.setOnClickListener(this);         

}       
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
              super.onActivityResult(requestCode, resultCode, data);
}
@Override
public void onClick(View view) {    

    Session.openActiveSession(this, true, new Session.StatusCallback(){
        @Override
        public void call(Session session, SessionState state,
                Exception exception) {

        }           
    });
}
}
AndroidManifest.xml

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.facebookapp.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity> 

    <activity android:name="com.facebook.LoginActivity" />

<meta-data
    android:name="com.facebook.sdk.ApplicationId"
    android:value="@string/app_id" />

</application>


只有一个登录功能是否正确。如果有错误,请帮助我如何在没有本机登录按钮系统的情况下在Facebook SDK 3.5上执行此操作。希望您能给予善意的回答。

看看这个方法:

 private boolean ensureOpenSession() {
    if (Session.getActiveSession() == null || !Session.getActiveSession().isOpened()) 
    {
        Session.openActiveSession(this, true, new Session.StatusCallback() {
            @Override
            public void call(Session session, SessionState state, Exception exception) 
            {
                onSessionStateChanged(session, state, exception);
            }
        });
        return false;
    }
    else
    {
        onSessionStateChanged(Session.getActiveSession(), Session.getActiveSession().getState(), null);
    }
    return true;
}
并且必须创建
onSessionStateChanged
方法:

 private void onSessionStateChanged(Session session, SessionState state, Exception exception)
 {}

您可以在其中指定会话状态更改时发生的情况。

查看此方法:

 private boolean ensureOpenSession() {
    if (Session.getActiveSession() == null || !Session.getActiveSession().isOpened()) 
    {
        Session.openActiveSession(this, true, new Session.StatusCallback() {
            @Override
            public void call(Session session, SessionState state, Exception exception) 
            {
                onSessionStateChanged(session, state, exception);
            }
        });
        return false;
    }
    else
    {
        onSessionStateChanged(Session.getActiveSession(), Session.getActiveSession().getState(), null);
    }
    return true;
}
并且必须创建
onSessionStateChanged
方法:

 private void onSessionStateChanged(Session session, SessionState state, Exception exception)
 {}
您可以在其中指定会话状态更改时发生的情况