在我的应用程序中,我正在使用Facebook SDK登录以及它在AVD上的工作,但是在实际设备上不起作用?

亚森·艾哈迈德

这是我的代码,现在我正在尝试在AVD上运行,但是当我使用真正的android设备调试选项时,他们没有输入onActivityResult函数对我有帮助吗?

package com.example.nhp04.gqfood;
import com.facebook.AccessToken;
import com.facebook.AccessTokenTracker;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.Profile;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;



public class Login extends AppCompatActivity implements Animation.AnimationListener {

private String info = "";
private LoginButton loginButton;
private CallbackManager callbackManager;
private AccessTokenTracker tracker;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FacebookSdk.sdkInitialize(getApplicationContext());
        callbackManager = CallbackManager.Factory.create();
        setContentView(R.layout.activity_login);
loginButton = (LoginButton)findViewById(R.id.login_button);



loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            AccessToken accessToken = loginResult.getAccessToken();
            Profile profile = Profile.getCurrentProfile();
            info = ("User ID: " + 

    loginResult.getAccessToken().getUserId() + "\n" + "Auth Token: " + loginResult.getAccessToken().getToken());
                }

                @Override
                public void onCancel() {
                    info = ("Login attempt canceled.");
                }

                @Override
                public void onError(FacebookException e) {
                    info = ("Login attempt failed.");
                }
            });
            System.out.println(info);
            tracker = new AccessTokenTracker() {
            @Override
            protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken currentAccessToken) {

            }
        };
        tracker.startTracking();
    }
    }

此功能用于检查登录

public boolean isLoggedIn(){
        AccessToken accessToken = AccessToken.getCurrentAccessToken();
        return accessToken != null;
    }

这在Resume和Stop方法上

@Override
    protected void onResume() {
        super.onResume();
        if (isLoggedIn()){
            Intent home = new Intent(this, home.class);
            startActivity(home);
        }
    }

    @Override
    protected void onStop() {
        super.onStop();
        tracker.stopTracking();
        finish();
    }

这是我的onActivityResult函数,当我在真实设备上调试代码时,该函数未执行,但在AVD上有效。

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        callbackManager.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            Intent home = new Intent(this, home.class);
            startActivity(home);
        } else {

        }
    }
亚森·艾哈迈德

此代码正常工作,错误是我正在使用debugger key storeFacebook sdk应用程序中的错误,现在我正在使用,RELEASE_KEYSTORE并且工作良好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档