4

我正在尝试实现 FileProvider 以允许我与电子邮件和其他应用程序共享本地私有图像。我一直在遵循 Android 开发人员指南的说明,并开始使用“getUriForFile”函数,Eclipse 告诉我必须创建该方法。我的印象是这应该在 android.support.v4.content 包中,并且它在应用程序的引用库中,但它不存在。

我在我的清单中添加了以下内容:

<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.gelbintergalactic.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/my_paths" />
</provider>

我创建了这个 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path name="files" path="." />
</paths>

但是当我在我的代码中达到这一点时,我受到了阻碍:

Uri contentUri = getUriForFile(this, "com.gelbintergalactic.fileprovider", newfile);

我错过了什么步骤?

4

1 回答 1

16

是的,开发指南中的说明并不是最好的。getUriForFile()是 FileProvider 类的静态方法,所以你需要这样做:

Uri contentUri =
  FileProvider.getUriForFile(this, "com.gelbintergalactic.fileprovider", newfile);
于 2013-11-14T19:58:38.533 回答