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"/>