我对Android很新,我试图通过意图使用相机。我知道我的API23或更低的权限正在工作。我的应用程序成功打开相机,但是当我点击确定后,它不会返回到我的MainActivity。我在网上发现,原因是因为我的代码无法为图片创建文件。所以我能够缩小到mkdirs()。这个函数总是返回false。我已经尝试了一切,但仍然mkdirs总是返回false。我在文档中使用了完全相同的代码: https://developer.android.com/guide/topics/media/camera.html#saving-media 保存数据。mkdirs()不工作,相机不返回到我的MainActivity
这里是我的代码:
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 - 我也曾尝试: 尝试{ 如果(!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天的时间没有任何运气。我非常感谢任何意见。非常感谢你!
愚蠢的我。我对自己非常不满。在花了几天的时间看后,写了这篇文章之后。答案完全不同的话题。对于将来遇到同样问题的人来说,问题在于您的权限:如果您的模拟器API23或更高版本,则您的相机权限应为: 而不是 –
Antuan
'photosDirectory.mkdirs();'。您不应该执行两次该声明。只有当目录不存在时。 – greenapps