此代码导致在Samsung JELLYBEAN上调用onCompleted方法,但在Motorola KITKAT或LG LOLLIPOP设备上调用。日志在所有设备上返回W/Facebook test(20699): Facebook session status changed - OPENED - Exception: null
。
private class SessionStatusCallback implements Session.StatusCallback {
@Override
public void call(Session session, SessionState state, Exception exception) {
String message = "Facebook session status changed - "
+ session.getState() + " - Exception: " + exception;
Log.w("Facebook test", message);
if (session.isOpened()) {
Request.newMeRequest(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
Log.d("onCompleted","");
}
}).executeAsync();
}
}
}
我已检查权限和存储的哈希值。这是我的onActivityResult方法:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
更新:我创建了一个与问题应用程序具有相同代码的测试项目。这个项目没有问题,这表明它不是一个java问题。关于Facebook的清单是相同的。我在每种情况下都有正确的app_id。除了包名,类名和密钥哈希之外,developers.facebook.com上的应用程序设置是相同的。
答案 0 :(得分:0)