如何使用
new SharePhoto.Builder()
.setImageUrl(Uri uri)
.build();
要将文件从内部存储共享到Facebook故事?该文档提到添加
<provider android:authorities="com.facebook.app.FacebookContentProvider{APP_ID}"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>
到AndroidManifest.xml
,但这还不够。
有一种方法FacebookContentProvider.getAttachmentUrl()
给出了一个我试图用来在其中保存文件的路径,但是它不起作用。
我从Facebook SDK回调管理器收到的错误如下。
无法复制贴纸
答案 0 :(得分:0)
有一些可能的原因无法正确获取文件。
第一个是,Facebook SDK需要将文件存储在本地存储中,并带有有效的Uri
。因此,如果文件实际上没有存储在本地存储中,则可能是一个问题。
另一件事是正确设置您的应用程序,以便它可以访问内部存储中的文件。我建议您检查一下您的应用程序中可能缺少的内容。
检查FileProvider
中是否有AndroidManifest.xml
,如下所示。
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}"
android:exported="false"
android:grantUriPermissions="true"
tools:replace="android:authorities">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_provider_paths"
tools:replace="android:resource" />
</provider>
并且您的file_provider_paths.xml
文件夹中应该有一个/res/xml
文件,其中应包含文件的位置,如下所示。
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
name="documents"
path="Android/data/bd.com.ipay.android/files/Pictures" />
</paths>
希望有帮助!