Mat*_*ana 3 android facebook login
我正在尝试将Facebook登录信息集成到我的Android应用程序中。我正在使用gradle下载的最后一个Facebook Sdk:
compile 'com.facebook.android:facebook-android-sdk:[4,5)'
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
public class SocialLogin extends Activity {
private static final String TAG = "SocialLogin";
CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_social_login);
callbackManager = CallbackManager.Factory.create();
LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
loginButton.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
loginButton.setReadPermissions(Arrays.asList("email", "public_profile"));
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.d(TAG, "onSuccess");
Toast.makeText(getApplicationContext(), "Login attempt success.", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel() {
Toast.makeText(getApplicationContext(), "Login attempt canceled.", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(FacebookException e) {
Toast.makeText(getApplicationContext(), "Login Failed.", Toast.LENGTH_SHORT).show();
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy");
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d(TAG, "onActivityResult");
callbackManager.onActivityResult(requestCode, resultCode, data);
}
}
Run Code Online (Sandbox Code Playgroud)
Facebook SDK可以正确显示活动以接受请求的权限,但是与此同时,有人会调用我的Activity 的onDestroy()方法。这意味着,当您接受所需的权限时,应用程序已经关闭,并且永远不会调用onActivityResult。可悲的是,logcat没有显示任何有用的信息。
就在我重新启动应用程序并再次单击Facebook登录按钮时,就会调用onActivityResult方法。有什么建议吗?
| 归档时间: |
|
| 查看次数: |
397 次 |
| 最近记录: |