0

私はAndroidにかなり慣れていないので、意図を介してカメラを使用しようとしています。API23 以下の権限が機能していることはわかっています。私のアプリは正常にカメラを開きますが、[OK] を押しても 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-アプリケーションにもアクセスし、アプリにカメラとストレージの権限があることを確認しました。

4-同じコードを呼び出すさまざまな方法を試しましたが、それでも.

私は絶望的です。これは私を夢中にさせています。私は何の運もなくこれに取り組んで4日間過ごしました. ご意見をいただければ幸いです。どうもありがとうございました!

4

1 に答える 1

1

この問題は mkdirs() に関係する必要はありませんが、私の許可に関係しています。使用する代わりに API >=23 の場合:

<uses-feature android:name="android.hardware.CAMERA" />

私は使用する必要がありました:

<uses-feature android:name="android.hardware.camera2"/>
于 2016-07-07T22:23:19.273 に答える