My app uses Facebook SDK 4.8.1 and has issues with login when there is no Facebook App on a phone (everything works fine when the fb app is installed).
The situation is:
- logInWithReadPermissions() is called
- the activity is stopped (should be?)
- login form is displayed
- you log in, agrees with permissions
- view is gone, the app is closed, onActivityResult() is never called.
I don't know if it is relevant, but I get this warning:
W/ActivityManager: Activity pause timeout for ActivityRecord{3de9bff8 u0 app.app.app/.activities.FbLoginActivity t18}
I've read Android Facebook SDK 4.0 Login without Facebook App and Can't get location and email using Facebook API, tried examples... still the same.
public class FbLoginActivity extends BaseActivity {
CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_fb_login);
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.i("fb","success");
}
@Override
public void onCancel() {
Log.i("fb","cancelled");
}
@Override
public void onError(FacebookException exception) {
Log.i("fb","stopped");
}
});
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends"));
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
}
The problem was in the manifest file:
<activity
android:noHistory="true"
android:screenOrientation="portrait"
android:name=".activities.FbLoginActivity">
</activity>
Removing android:noHistory="true"
resolved the issue.