Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.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
Facebook登录Android取消_Android_Facebook_Facebook Graph Api_Facebook Login_Facebook Sdk 4.0 - Fatal编程技术网

Facebook登录Android取消

Facebook登录Android取消,android,facebook,facebook-graph-api,facebook-login,facebook-sdk-4.0,Android,Facebook,Facebook Graph Api,Facebook Login,Facebook Sdk 4.0,我想在Android应用程序中登录Facebook,在我收到的日志中取消。这就是代码,有什么想法吗 我按照developers.facebook.com的指示,尝试使用一个片段进行登录 public class LoginFragment extends Fragment { public static final String TAG = LoginFragment.class.getSimpleName(); private CallbackManager callbackManager

我想在Android应用程序中登录Facebook,在我收到的日志中取消。这就是代码,有什么想法吗

我按照developers.facebook.com的指示,尝试使用一个片段进行登录

public class LoginFragment extends Fragment {

public static final String TAG = LoginFragment.class.getSimpleName();

private CallbackManager callbackManager;

private ProfileTracker profileTracker;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    FacebookSdk.sdkInitialize(getActivity().getApplicationContext());

    setUpCallbacks();
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_login, container, false);

    LoginButton loginButton = (LoginButton) view.findViewById(R.id.facebook_button_login);

    loginButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final LoginManager manager = LoginManager.getInstance();
            manager.setLoginBehavior(LoginBehavior.SSO_WITH_FALLBACK);
            manager.logInWithReadPermissions(LoginFragment.this, null);
        }
    });

    return view;
}

private void setUpCallbacks() {
    callbackManager = CallbackManager.Factory.create();
    LoginManager manager = LoginManager.getInstance();
    manager.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            Profile.fetchProfileForCurrentAccessToken();
            Log.d(TAG, "success");
        }

        @Override
        public void onError(FacebookException exception) {
            AccessToken.setCurrentAccessToken(null);
            Log.d(TAG, "error");
        }

        @Override
        public void onCancel() {
            AccessToken.setCurrentAccessToken(null);
            Log.d(TAG, "cancel");
        }

    });

    profileTracker = new ProfileTracker() {
        @Override
        protected void onCurrentProfileChanged(Profile oldProfile, Profile currentProfile) {
            AccessToken currentAccessToken = AccessToken.getCurrentAccessToken();
            if (currentAccessToken == null) {
                Log.d(TAG, "AccessToken is null");
            }
            else {
                Log.d(TAG, currentProfile.getName());
            }
        }
    };
}

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

    callbackManager.onActivityResult(requestCode, resultCode, data);
}
}


谢谢。

登录按钮的用法如下:

    LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
    loginButton.setReadPermissions(Arrays.asList("user_friends, public_profile, email, user_birthday"));

    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {

        }

        @Override
        public void onCancel() {

        }

        @Override
        public void onError(FacebookException e) {

        }
    });

您的登录按钮是SDK提供的吗?如果是这样,您不需要添加LoginManager内容,因为它已经为您完成了登录。