Java 如何在Android中正确获取文件的URI?
我正在尝试获取如下文件的URI:Java 如何在Android中正确获取文件的URI?,java,android,image,storage,Java,Android,Image,Storage,我正在尝试获取如下文件的URI: Uri photoURI = FileProvider.getUriForFile(this, "br.com.[blablabla].sgaconsultor", createImageFile()); private File createImageFile() throws IOException { // Create an image fi
Uri photoURI = FileProvider.getUriForFile(this,
"br.com.[blablabla].sgaconsultor",
createImageFile());
private File createImageFile() throws IOException {
// Create an image file name
String imageFileName = "registroFoto";
ContextWrapper cw = new ContextWrapper(getApplicationContext());
File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
return File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
directory
);
}
我有一个文件提供商:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="br.com.[blablabla].blabla"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
xml是:
<paths>
<files-path name="br.com.[blablabla].blabla" path="app_imageDir" />
</paths>
但当我运行此代码时,总是会出现以下错误:
java.lang.IllegalArgumentException:
但到目前为止没有运气那么我如何修复此问题并获取文件的URI?
非常感谢您的帮助
那么我如何修复这个问题并获取文件的URI呢
步骤1:去掉Java代码中无用的东西
步骤2:让Java代码和文件路径
资源匹配,因为文件路径
说明文件路径必须在getfiledir()下
并在其中包含app\u imageDir
,而Java代码中没有这两种内容
那么,试试这个:
private File createImageFile() throws IOException {
// Create an image file name
String imageFileName = "registroFoto";
File directory = new File(getFilesDir(), "app_imageDir");
directory.mkdirs();
return File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
directory
);
}
那么我如何修复这个问题并获取文件的URI呢
步骤1:去掉Java代码中无用的东西
步骤2:让Java代码和文件路径
资源匹配,因为文件路径
说明文件路径必须在getfiledir()下
并在其中包含app\u imageDir
,而Java代码中没有这两种内容
那么,试试这个:
private File createImageFile() throws IOException {
// Create an image file name
String imageFileName = "registroFoto";
File directory = new File(getFilesDir(), "app_imageDir");
directory.mkdirs();
return File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
directory
);
}