Android应用程序中的Facebook登录正在重定向到本机Facebook Android应用程序
我正在应用程序中使用最新的Facebook sdk登录。当我的设备中没有安装本机facebook应用程序时,登录工作正常。但如果安装了本机facebook应用程序,则我的登录将重定向到此本机facebook应用程序 但我希望我的应用程序只使用facebook对话框登录。如何限制我的应用程序仅使用Facebook sdk对话框登录 下面是我的登录示例代码 代码: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
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(){//您的代码}代替回调