当 facebook 应用程序未安装问题时,在 Android 中使用 facebook sdk 登录

Oma*_*aha 5 facebook facebook-login android-studio

我已经在 Android 应用程序中实现了通过 facebook 登录,当我的设备上安装了 facebook 应用程序时,它工作正常。卸载应用程序后,当通过 facebook 登录时,它显示 facebook 登录屏幕,授予应用程序权限后,它会将我重定向到我的登录屏幕,但 onActivityResult 未被调用,并且我无法单击中的任何按钮屏幕。当我点击后退按钮时,透明屏幕关闭,并以意图 null 调用 onActicityResult 。

在我的 gradle 文件中,我使用的是最新的 facebook 版本

implementation 'com.facebook.android:facebook-android-sdk:12.0.0

这是我在活动中使用的代码:

 mCallbackManager = CallbackManager.Factory.create();
 
LoginManager.getInstance().registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                performFBLogin(loginResult);
            }

            @Override
            public void onCancel() {
                showErrorMessage(getResources().getString(R.string.facebook_login_canceled), true);
            }

            @Override
            public void onError(@NonNull FacebookException exception) {
                showErrorMessage(exception.getLocalizedMessage(), true);
            }
        });
Run Code Online (Sandbox Code Playgroud)

点击事件的完成如下:

        LoginManager.getInstance().logInWithReadPermissions(this, mCallbackManager, Arrays.asList("public_profile", "email"));

Run Code Online (Sandbox Code Playgroud)

我的清单文件如下所示:

  <activity
            android:name="com.facebook.CustomTabMainActivity"
            android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:label="@string/app_name" />
        <activity
            android:name="com.facebook.CustomTabActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data android:scheme="@string/fb_login_protocol_scheme" />
            </intent-filter>
        </activity>


  <meta-data
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id" /> 
        <!-- [Facebook] -->
        <meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>

Run Code Online (Sandbox Code Playgroud)

有人面临这样的问题吗?

谢谢

小智 7

这是 Facebook SDK 在使用 1.5.0+ 版本的 AndroidX 片段/活动时出现的错误

https://github.com/facebook/facebook-android-sdk/blob/main/CHANGELOG.md#1411

只需将您的 Facebook SDK 更新到最新版本(推荐)或降级您的片段/活动版本(不推荐)