1
原谅我可能是一个愚蠢的问题,但我真的无法在任何地方找到答案。从我刚创建的文件中获取Uri(安卓)
我需要我的程序将EditText的内容保存为html文件并与其他应用程序共享。为此,我需要将文件写入内部存储器,然后获取URI。但是,如何做到这一点,没有任何信息(我可以罚款)。
这是我的代码(编辑作为活动的名称和MYAPP包):
String filename = "Lorem ipsum.html";
FileOutputStream outputStream;
try {
outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
outputStream.write(Html.toHtml(textField.getText()).getBytes());
outputStream.close();
System.out.println(filename);
} catch (Exception e) {
e.printStackTrace();
}
Intent shareIntent = ShareCompat.IntentBuilder.from(Editor.this)
.setStream(FileProvider.getUriForFile(Editor.this, "com.myapp.fileprovider", new File(filename)))
.getIntent();
shareIntent.setData(FileProvider.getUriForFile(Editor.this, "com.myapp.fileprovider", new File(filename)));
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(shareIntent);
据我所知道的,文件创建工作的一部分就好;没有例外被捕获。然而,实际的共享部分与此错误崩溃:
java.lang.IllegalArgumentException: Failed to find configured root that contains /Lorem ipsum.html
试图找到URI时,我清楚地做错事,但我一直无法找到一个解决方案。官方文件没有帮助,我找不到这个具体问题的例子。
如果它的事项,这是我的fileprovider声明:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.myapp.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/paths" />
</provider>
预先感谢您的任何帮助。
这是我的问题的一部分,虽然 - 我不知道的路径是什么以及如何找到它 – Sauron
其中是位于您的手机中的文件? –
我试图访问我刚刚创建的文件(使用我发布的代码),但我不确定应用程序将其保存在哪里。 – Sauron