【发布时间】:2019-12-22 21:24:54
【问题描述】:
我看了很多这样的帖子,但仍然不知道问题是什么。我尝试在 file_paths.xml 中更改路径和名称。
file_paths.xml:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path
name="pirosfogo_images"
path="storage/emulated/0/pictures/"/>
</paths>
AndroidManifest.xml:
<application
...
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.kijevigombooc.pirosfogo.fileprovider"
android:exported="false"
android:grantUriPermissions="true"/>
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</application>
java:
void takePhoto(){
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 110);
}
else
{
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (intent.resolveActivity(getPackageManager()) != null)
{
File photoFile = createPhotoFile();
if(photoFile != null){
pathToFile = photoFile.getAbsolutePath();
Uri photoURI = FileProvider.getUriForFile(ProfileEdit.this, "adada", photoFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(intent, REQUEST_CAMERA);
}
}
}
}
private File createPhotoFile() {
String name = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File storageDir = getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File image = null;
try{
image = File.createTempFile(name, ".jpg", storageDir);
} catch(Exception e){}
return image;
}
为什么我会收到错误消息?
【问题讨论】:
-
android.support.FILE_PROVIDER_PATHS元数据应设置在<provider>标签内。 -
不,我已经查看了这个问题及其答案,但是谢谢
-
正如我在上一条评论中提到的,您收到错误的原因是因为您在错误的父级中指定了
meta-data- 它应该是<provider>标记,而不是<application>标记。 -
你能告诉我它的样子吗?自动完成文本不显示我