FacebookSDK Request.newMeRequest onCompleted 调用了 JELLYBEAN 但没有调用 KITKAT 或 LOLLIPOP
FacebookSDK Request.newMeRequest onCompleted called on JELLYBEAN but not KITKAT or LOLLIPOP
此代码导致 onCompleted 方法在 Samsung JELLYBEAN 上被调用,但在 Motorola KITKAT 或 LG LOLLIPOP 设备上没有被调用。所有设备上的日志 returns: 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 上的应用程序设置相同,除了包名称、class 名称和密钥哈希。
- 前往 developers.facebook.com
- Select 你的应用
- Select 状态和审核
- 更改“是否要制作此应用及其所有实时功能
一般 public 可用吗?”到 NO
(我此时等了大概十分钟,可能没有必要)
- 然后将相同的设置改回 YES
此代码导致 onCompleted 方法在 Samsung JELLYBEAN 上被调用,但在 Motorola KITKAT 或 LG LOLLIPOP 设备上没有被调用。所有设备上的日志 returns: 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 上的应用程序设置相同,除了包名称、class 名称和密钥哈希。
- 前往 developers.facebook.com
- Select 你的应用
- Select 状态和审核
- 更改“是否要制作此应用及其所有实时功能 一般 public 可用吗?”到 NO (我此时等了大概十分钟,可能没有必要)
- 然后将相同的设置改回 YES