我正在尝试实现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);
我错过了哪一步?
答案 0 :(得分:11)
是的,开发指南中的说明并不是最好的。 getUriForFile()
是FileProvider类的静态方法,因此您需要执行以下操作:
Uri contentUri =
FileProvider.getUriForFile(this, "com.gelbintergalactic.fileprovider", newfile);