2017-10-28 28 views
0

以下の「ステータス」フラグは常にfalseを返します。そして、私がそれを削除した場合、私は以下のphotoFileを作成しようとしている行に "ENOENT(そのようなファイルやディレクトリはありません)"というエラーを表示しています。アンドロイドマニフェストで私の権限もディレクトリが作成されていません - オープンに失敗しました:ENOENT(そのようなファイルまたはディレクトリはありません)

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

に設定されている

boolean status=false; 
File picturesPath = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); 
File myPicturesFolder = new File (picturesPath.getAbsolutePath() +"/myBuddy"); 
if(!myPicturesFolder.exists()) { 
       status = myPicturesFolder.mkdirs(); 
       } 


    if(status) { 
     File photoFile = null; 
     String type = DateAndTimeUtils.getTypeBasedOnTimeOfTheDay(); 
     String timeStamp = DateAndTimeUtils.dateTimeStamp(); 
     String photoFileName = type + timeStamp; 
     photoFile = File.createTempFile(photoFileName, ".jpg", myPicturesFolder); 
    } 

私は、問題と、それは私のコードで起こっているが何であるかを知っているが、それを修正する方法を理解するように見えることはできません。いくつかの奇妙な理由で。 誰かが新鮮な表情をしてくれて、助けてくれますか?

+0

あなたはどのAndroid搭載デバイスを使用していますか? –

+0

@SRBbans - 私のテスト用の電話はAndroid 6.0.1で、androidmanifestのminSDKVersionは23に設定されています –

+0

urプロジェクトの対象バージョンは何ですか?上記のアンドロイド6あなたは実行時に許可を求める必要がありますか? –

答えて

0

私は上記のコメントに基づいてこの問題の根本原因を発見しました。それは本当にパーミッションに関連していました。 Android6の場合、実行時に権限ステータスをチェックする必要があるため、mkdirs()は権限がないため動作しませんでした。そこで、permissionCheckとonRequestPermissionsResultを追加して、それ以降はうまくいくようになりました。

関連する問題

 関連する問題