2016-07-07 3 views
0

私はかなりAndroidに新しく、私は意図でカメラを使用しようとしています。私はAPI23以下の私の許可が働いているのを知っています。私のアプリは正常にカメラを開きますが、OKを押すと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日を費やして運が無かった。私は非常にすべての入力を感謝します。どうもありがとうございました!

+0

愚かなAPI> = 23の代わりに使用してください。私は非常に自分自身に動揺しています。日を過ごした後、この投稿を書いた直後。全く異なるトピックに関する答え。あなたのエミュレータが私のようにAPI23以上であれば、カメラの許可は次のようにする必要があります: Antuan

+0

' photosDirectory.mkdirs(); 'の代わりに"/"を使用してください。その文を2度実行しないでください。ディレクトリが存在しない場合に限ります。 – greenapps

答えて

0

問題はmkdirs()とは関係ありませんが、私の許可があります。

私が使用する必要があります使用している必要があります
<uses-feature android:name="android.hardware.CAMERA" /> 

:私

<uses-feature android:name="android.hardware.camera2"/> 
関連する問題