我正在我的应用上进行FB登录集成。我完成了所有必要的设置并生成了我的哈希密钥。我使用自定义UI视图进行登录,因此我在我的activty中实现了LoginManager,如下所示
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(this);
setContentView(R.layout.activity_account_front);
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// not called
Log.e("fb_login_sdk", "callback success");
}
@Override
public void onCancel() {
// not called
Log.e("fb_login_sdk", "callback cancel");
}
@Override
public void onError(FacebookException e) {
// not called
Log.e("fb_login_sdk", "callback onError");
}
});
final Activity activity = this;
face = (ImageView) findViewById(R.id.face);
face.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.e("fb_login_sdk", "click");
List<String> perm = new ArrayList<String>();
perm.add("email");
LoginManager.getInstance().logInWithReadPermissions(activity, perm);
}
});
有了这个,我得到的最高点是imageview日志上的onclick。我已经实现了这个
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.e("Results", String.valueOf(resultCode));
callbackManager.onActivityResult(requestCode, resultCode, data);
}
但是在点击事件开始时没有打印任何日志。当我按下按钮时,微调器会短暂显示然后应用程序刚刚结束(不会崩溃)。我如何让它发挥作用,它让我疯狂,因为我花了大约一天时间来使这个工作。感谢
答案 0 :(得分:0)
初始化facebook sdk时,尝试使用应用程序上下文而不是活动上下文。
替换此
FacebookSdk.sdkInitialize(this);
与
FacebookSdk.sdkInitialize(getApplicationContext());
希望它对你有用。
答案 1 :(得分:0)
对我来说,这很简单,也许是一种疏忽。正如@Arkar指出的那样,我忘了从我的AndroidManifest文件中删除这个特定的Activity,因此没有触发回调。
android:noHistory