我正在创建一个应用程序,我成功解决了使用Facebook SDK 4.7.0登录Facebook的问题.我正在使用LoginManager(而不是LoginButton),因为我想有一个自定义按钮.
流程是这样的:
null.我在onlogListener的Logout Button上实现了以下内容:
FacebookSdk.sdkInitialize(getApplication().getApplicationContext());
LoginManager.getInstance().logOut();
但是,当我按下设备上的按钮时,它什么都不做(仅ViewPostImeInputStage ACTION_DOWN在logcat中显示,这是按钮按下的标准.
我在SO上看到了其他帖子,这个方法有效,所以我不明白为什么它在我的情况下不起作用.
SignInActivity.java
FacebookSdk.sdkInitialize(getApplication().getApplicationContext());
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.e(TAG, "User ID: " + loginResult.getAccessToken().getUserId());
Log.e(TAG, "Auth Token: " + loginResult.getAccessToken().getToken());
SharedPreferences prefs = getSharedPreferences("com.dotfreeride.dotfreeride.login", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("userId", loginResult.getAccessToken().getUserId());
editor.putString("fbToken", loginResult.getAccessToken().getToken());
editor.commit();
}
@Override
public void onCancel() {
Toast.makeText(SignInActivity.this, "Login attempt canceled!", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(FacebookException error) {
Toast.makeText(SignInActivity.this, "Login attempt failed!", Toast.LENGTH_SHORT).show();
}
});
Run Code Online (Sandbox Code Playgroud)
MainActivity.java
logoutBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FacebookSdk.sdkInitialize(getApplication().getApplicationContext());
LoginManager.getInstance().logOut();
}
});
Run Code Online (Sandbox Code Playgroud)
这对我有用
public class Profile extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
}
public void gotoLogin(View view){
FacebookSdk.sdkInitialize(getApplicationContext());
LoginManager.getInstance().logOut();
Intent intent = new Intent(this, Login.class);
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
}
我遇到了同样的问题,因为我扩展了 AppCompatActivity。有了 ActionBar 就可以了。希望它能帮到你:)
| 归档时间: |
|
| 查看次数: |
522 次 |
| 最近记录: |