在FileProvider中找不到“getUriForFile”方法

时间:2013-11-12 16:20:05

标签: android

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

我已将以下内容添加到我的清单中:

<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);

我错过了哪一步?

1 个答案:

答案 0 :(得分:11)

是的,开发指南中的说明并不是最好的。 getUriForFile()是FileProvider类的静态方法,因此您需要执行以下操作:

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