我对Android相当陌生,我正在尝试通过意图使用相机。我知道我对 API23 或更低版本的权限有效。我的应用程序成功打开了相机,但是当我点击确定时,它并没有回到我的 MainActivity。我在网上找到原因是因为我的代码无法为图片创建文件。所以我能够将其缩小到 mkdirs()。此函数始终返回 false。我已经尝试了所有方法,但 mkdirs 总是返回 false。我在文档中遵循了完全相同的代码: https ://developer.android.com/guide/topics/media/camera.html#saving-media 在保存数据下。
这是我的代码:
private static File getOutputMediaFile(int type){
----- .... 我先做一些检查以确保 SD 卡已安装 ...-------- .....
File photosDirectory;
photosDirectory = new File (Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),"myPhotos");
if(!photosDirectory.exists()) {
boolean file_creation = photosDirectory.mkdirs();
if(!photosDirectory.mkdirs()){
//return null; --->> HERE IS WHERE IT FAILS
}else{
Log.d("MyCameraApp", "FILE CREATION SUCCEEDED ");
}
}
----- I have some extra code here, not relevant to the question -----
}
我尝试过的事情:1-权限。我已经包括:
2-我也试过:try{ if(!photosDirectory.exists()) {
boolean file_creation = photosDirectory.mkdirs();
if(!photosDirectory.mkdirs()){
//return null; --->> HERE IS WHERE IT FAILS
}else{
Log.d("MyCameraApp", "FILE CREATION SUCCEEDED ");
}
} catch(Exception e){ show message}
3-我也进入了应用程序并确保该应用程序具有 CAMERA 和 STORAGE 权限。
4-我尝试过调用相同代码的不同方法,但仍然如此。
我很绝望。这让我发疯了。我花了 4 天的时间来解决这个问题,但没有任何运气。我将非常感谢任何意见。非常感谢!