登录facebook后开始新的活动

时间:2015-12-11 05:13:02

标签: android facebook-android-sdk

我正在将facebook登录集成到我的应用程序中。它工作正常,但我想在成功登录后开始一项新活动。新活动未启动这是我的代码。

       @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(getApplicationContext());
    callbackManager = CallbackManager.Factory.create();

    setContentView(R.layout.activity_register_skip);

    skip = (TextView) findViewById(R.id.textViewSkip);
    register = (Button) findViewById(R.id.buttonRegisterOne);

    skip.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            SessionHandler handler = new SessionHandler(RegisterSkipActivity.this.getApplicationContext());
            handler.storeLoginSession("guest");
            SharedPreferences.Editor editor = getSharedPreferences(
                    "MyPref", MODE_PRIVATE).edit();
            String p_name ="guest";
            editor.putString("personName", p_name);
            editor.putString("TAG", "guest");
            editor.commit();
            Intent intent = new Intent(RegisterSkipActivity.this, MainActivity.class);
            intent .putExtra("username","Guest");
            startActivity(intent);
        }
    });

    register.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });
    /////fb and g+
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.techieweb.solutions.pickeronline",
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (PackageManager.NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }

    loginButton = (LoginButton) findViewById(R.id.login_button);
    btnSignIn = (SignInButton) findViewById(R.id.btn_sign_in);
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build();
    btnSignIn.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            signIn();
        }
    });
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            type = "1";
loginResult.getAccessToken().getToken());
            Log.e("In onSuccess","onsuccess");
            Intent intent = new Intent(RegisterSkipActivity.this, MainActivity.class);
            intent.putExtra("Login", type);
            startActivity(intent);

        }


        @Override
        public void onCancel() {
            // info.setText("Login attempt cancelled.");
            Log.e("In onCancel","oncancel");
        }

        @Override
        public void onError(FacebookException e) {
            //info.setText("Login attempt failed.");
            Log.e("In onError","onerror");
        }
    });

} 

没有错误。显示facebook的登录屏幕。仅启动新活动。请帮帮我

1 个答案:

答案 0 :(得分:1)

你错过了onactivityresult部分。 !!!

问题似乎在于您在登录成功后没有触发 onActivityResult 上的callbackManager。这就是为什么不调用“onsuccess”,“onfailure”或“onerror”方法的原因。

检查以下代码。将其粘贴到您的活动类

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

Reference link From Facebook Official.

如果您有任何疑问,请与我们联系。

相关问题