Facebook 共享对话框在 MI 设备中无法正常工作

Facebook share dialog not working correctly in MI devices

ShareLinkContent代码

ShareLinkContent content = new ShareLinkContent.Builder()
                        .setContentUrl(Uri.parse(shareUrl))
                        .setContentTitle(shareTitle)
                        .build();

分享我试过的对话代码

一个。使用共享对话框对象

ShareDialog dialog = new ShareDialog(this);
dialog.show(content, ShareDialog.Mode.AUTOMATIC); //tried other 4 modes too

b。使用静态访问

ShareDialog.show(this, content);

现在的问题是,它在摩托罗拉、三星、Pixel、联想等所有普通手机上都运行良好。

但相同的代码导致 Redmi 设备出现奇怪的行为。当我单击调用此代码的按钮时,键盘和共享对话框出现,并在那里停留几毫秒然后消失。

我需要做些什么来处理 MI 设备中的 Facebook 对话吗?

There is an option of creating custom dialog box, but I want to keep it as the last option.

编辑

Facebook 的“赞”按钮也发生了同样的情况。

这是 Facebook 点赞按钮的代码

facebookLikeView.setObjectIdAndType("https://www.facebook.com/StartupScribble/", LikeView.ObjectType.PAGE);

此代码在除 Redmi 设备外的大多数设备中也能完美运行。

我在开发应用程序时遇到了同样的问题。我的问题是 Facebook 应用程序仍处于开发者模式。在设备上登录的 Facebook 帐户未作为管理员、开发人员或测试人员添加到 Facebook 应用程序。

该帐户没有访问该应用程序的权限,分享对话框出现后几乎立即关闭。 当我使用正确的 Facebook 帐户登录时,这个问题就解决了。

When testing your apps, place them into development mode. This hides your app entirely from all users who you have not authorized in the App Dashboard to see the app, for the roles described below. Please note that when your app is in development mode, you can't call any API calls on behalf of users who cannot see your app.

以上文字来自 facebook-documentation 他们对角色进行了更多解释。

另一个原因是因为 android facebook 应用程序在 179.0.0.44.83 版本中的一个错误,在这个版本中,由于本地 Facebook 应用程序的内部错误,ShareDialog 将无法工作。