mkdirs() 不工作,相机不返回到我的 MainActivity
mkdirs() not working, Camera doesn't go back to my MainActivity
我是 Android 的新手,我正在尝试通过 intent 使用相机。我知道我对 API23 或更低版本的权限有效。我的应用程序成功打开了相机,但是当我点击“确定”时,它并没有返回到我的 MainActivity。我在网上查到原因是因为我的代码没有为图片创建文件。所以我能够将它缩小到 mkdirs()。这个函数总是 returns false。我已经尝试了所有方法,但 mkdirs 仍然总是 returns 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-我也试过:
尝试{
如果(!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 天的时间来解决这个问题,但没有任何运气。我将非常感谢任何输入。非常感谢你!
这个问题与 mkdirs() 无关,但与我的权限有关。对于 API >=23 而不是使用:
<uses-feature android:name="android.hardware.CAMERA" />
我应该用应该用:
<uses-feature android:name="android.hardware.camera2"/>
我是 Android 的新手,我正在尝试通过 intent 使用相机。我知道我对 API23 或更低版本的权限有效。我的应用程序成功打开了相机,但是当我点击“确定”时,它并没有返回到我的 MainActivity。我在网上查到原因是因为我的代码没有为图片创建文件。所以我能够将它缩小到 mkdirs()。这个函数总是 returns false。我已经尝试了所有方法,但 mkdirs 仍然总是 returns 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-我也试过: 尝试{ 如果(!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 天的时间来解决这个问题,但没有任何运气。我将非常感谢任何输入。非常感谢你!
这个问题与 mkdirs() 无关,但与我的权限有关。对于 API >=23 而不是使用:
<uses-feature android:name="android.hardware.CAMERA" />
我应该用应该用:
<uses-feature android:name="android.hardware.camera2"/>