Android应用程序中的Facebook登录正在重定向到本机Facebook Android应用程序

Android应用程序中的Facebook登录正在重定向到本机Facebook Android应用程序,android,facebook-login,facebook-sdk-3.0,Android,Facebook Login,Facebook Sdk 3.0,我正在应用程序中使用最新的Facebook sdk登录。当我的设备中没有安装本机facebook应用程序时,登录工作正常。但如果安装了本机facebook应用程序,则我的登录将重定向到此本机facebook应用程序 但我希望我的应用程序只使用facebook对话框登录。如何限制我的应用程序仅使用Facebook sdk对话框登录 下面是我的登录示例代码 代码: Session.openActiveSession(MainActivity.this, true, new Session.Statu

我正在应用程序中使用最新的Facebook sdk登录。当我的设备中没有安装本机facebook应用程序时,登录工作正常。但如果安装了本机facebook应用程序,则我的登录将重定向到此本机facebook应用程序

但我希望我的应用程序只使用facebook对话框登录。如何限制我的应用程序仅使用Facebook sdk对话框登录

下面是我的登录示例代码

代码:

Session.openActiveSession(MainActivity.this, true, new Session.StatusCallback() {

              // callback when session changes state



            @Override
              public void call(Session session, SessionState state, Exception exception) {

                Log.e("session","open session");

                if (session.isOpened()) {

                    strAccesstoken=session.getAccessToken();
                     List<String> permissions = session.getPermissions();

                     Log.e("current permissions",""+permissions);
                        if (!isSubsetOf(PERMISSIONS, permissions)) {

                            Session.NewPermissionsRequest newPermissionsRequest = new Session
                                    .NewPermissionsRequest(MainActivity.this, PERMISSIONS);
                        session.requestNewPublishPermissions(newPermissionsRequest);
                            return;
                        }

                  // make request to the /me API
                  Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {



                    // callback after Graph API response with user object


                    @Override
                    public void onCompleted(GraphUser user, Response response) {
                        // TODO Auto-generated method stub


                        if (user != null) {
                            welcome = (TextView) findViewById(R.id.welcome);
                            welcome.setText("Hello " + user.getName() + "!");
                            strCurrentuser=user.getId();


                          }

                         // Check for publish permissions    


                    }
                  });
                }
              }
            });
Session.openActiveSession(MainActivity.this,true,new Session.StatusCallback()){
//会话更改状态时的回调
@凌驾
公共无效调用(会话、会话状态、异常){
Log.e(“会议”、“公开会议”);
if(session.isOpened()){
strAccesstoken=session.getAccessToken();
List permissions=session.getPermissions();
Log.e(“当前权限”,“权限+”);
如果(!isSubsetOf(权限、权限)){
Session.newpermissions请求newpermissions请求=新会话
.NewPermissionsRequest(MainActivity.this,PERMISSIONS);
session.requestNewPublishPermissions(newPermissionsRequest);
返回;
}
//向/me API发出请求
Request.executeRequestAsync(会话,新请求.GraphUserCallback(){
//带有用户对象的Graph API响应后的回调
@凌驾
未完成公共无效(GraphUser用户,响应){
//TODO自动生成的方法存根
如果(用户!=null){
欢迎=(TextView)findViewById(R.id.welcome);
welcome.setText(“Hello”+user.getName()+“!”);
strCurrentuser=user.getId();
}
//检查发布权限
}
});
}
}
});
使用以下方法:

Session.OpenRequest request=new Session.OpenRequest(activity);

request.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);
// suppressing single sign on will prevent the native app and use web based login.

Session session= new Session(activity);
session.openForRead(request);
session.setCallback(callback);
Session.setActiveSession(session);

也不要忘记覆盖onActivityResult

@Override

        public void onActivityResult(int requestCode, int resultCode, Intent data)
        {

                super.onActivityResult(requestCode, resultCode, data);

                Session.getActiveSession().onActivityResult(activity, requestCode, resultCode, data);

            }

对这将为您提供会话的实例。。然后你可以用它来做任何其他的请求。这个回调是什么?如何获取此.session.setCallback(new StatusCallback(){@Override public void call(会话会话、会话状态、异常异常){//TODO自动生成的方法存根}});session.setCallback(回调)不在session(会话中未定义的方法)session.setCallback(回调)下。使用新的StatusCallback(){//您的代码}代替回调