【发布时间】:2018-04-07 16:31:29
【问题描述】:
我正在尝试编写一个可以拍摄照片并将其保存到图库中的应用程序。
我遵循了 Android 开发者指南,但它只显示了如何将相同的图像放入私有目录。
这是我用来将意图发送到相机的代码
public void dispatchTakePictureIntent(View view) {
if (ContextCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
2121);
return;
}
//File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File image = null;
try {
image= File.createTempFile("IMG", ".jpg", storageDir);
//tempImage=image;
} catch (IOException e) {
errorMessage.setVisibility(View.VISIBLE);
Log.e("error", Log.getStackTraceString(e));
return;
}
//photoURI = FileProvider.getUriForFile(this, "prova.fileprovider", image);
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null ) {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(image));
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
当我在 Android Studio 模拟器 (Pixel_API_27) 上运行它时,调用 File.createTempFile 时出现错误
提前感谢您的帮助。
【问题讨论】:
-
您遇到了哪个错误?如果有问题,我为什么要继续使用您的代码?添加返回语句。
-
我如何得到错误?该应用程序只是关闭。
-
没有。 logcat 会告诉你哪些异常你没有捕捉到。从 logcat 中发布相关部分。
-
FileUriExposedException?
标签: android android-studio android-camera android-camera-intent