2017-05-15 6 views
0

こんにちは私はカメラから画像をキャプチャし、特定のフォルダに保存したいと思います。例えば、私は名前に「MyImagesを」フォルダを持っていると私は、このフォルダにをabc.png名前で撮影した画像を保存したい、だから、どのように私は、コードスニペットを以下のためFileProviderパスを設定することができます。FileProviderのフォルダのパスをAndroidで設定する方法は?

<paths xmlns:android="http://schemas.android.com/apk/res/android"> 
<files-path name="my_images" path="???"/> 
... 

後、私は私のイメージファイルを作成しています私のコードです。

public File getAlbumDir() { 
    File storageDir = null; 

    if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { 

     storageDir = new File(Environment.getExternalStorageDirectory(), 
       "MyImages"); 

     if (storageDir != null) { 
      if (!storageDir.mkdirs()) { 
       if (!storageDir.exists()) { 
        Log.d("CameraSample", "failed to create directory"); 
        return null; 
       } 
      } 
     } 

    } else { 
     Log.v(context.getString(R.string.app_name), "External storage is not mounted " + 
       "READ/WRITE."); 
    } 

    return storageDir; 
} 

public File createImageFile() { 
    // Create an image file name 
    String imageFileName = "abc.jpg"; 
    File albumF = getAlbumDir(); 
    File imageF = new File(albumF, imageFileName); 
    return imageF; 
} 
+0

"MyImages "" 私は名前のフォルダを持っている" - このフォルダが存在する場合、**詳細に**、説明してください。 – CommonsWare

+0

このフォルダはSDカードに存在します。あなたがパスを設定する方法を知っているなら、私を助けてください。 –

+0

このリンクを試すhttp://stackoverflow.com/questions/20058793/android-how-to-save-the-camera-result-to-a-private-file – Ankita

答えて

2

あなたはEnvironment.getExternalStorageDirectory()のオフMyImages/を持っています。

まず、ファイルを置くのには適していません。これは、WindowsのC:\のルートにディレクトリを作成するのと同じです。

言われて、あなたのFileProvider XML構成で、あなたが必要があること:

<external-path name="my_images" path="MyImages"/> 
+0

私はpath/path/storage/sdcard0/..のようにパス全体を指定する必要があると思います。 –

+0

@Roy:いいえ、 'external-path'は' Environment.getExternalStorageDirectory() 'を指します。 – CommonsWare

関連する問題