在Android中,如果Facebook注册回调未被调用,可能有几个原因。以下是一些常见问题和解决方法的示例代码:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 初始化Facebook SDK
FacebookSdk.sdkInitialize(getApplicationContext());
// 可选:设置Facebook应用程序的日志输出级别
FacebookSdk.setIsDebugEnabled(true);
FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS);
}
}
public class MainActivity extends AppCompatActivity {
private CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化Facebook回调管理器
callbackManager = CallbackManager.Factory.create();
// 注册Facebook回调
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback() {
@Override
public void onSuccess(LoginResult loginResult) {
// 处理登录成功回调
}
@Override
public void onCancel() {
// 处理登录取消回调
}
@Override
public void onError(FacebookException error) {
// 处理登录错误回调
}
});
// 其他代码
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 将结果传递给Facebook回调管理器
callbackManager.onActivityResult(requestCode, resultCode, data);
}
}
请注意,上述代码只是示例代码,您需要根据自己的应用程序需求进行适当的调整和修改。确保在Facebook开发者控制台上设置正确的应用程序ID,并在strings.xml文件中添加相应的字符串资源。