2013-06-07 9 views
11

私はAndroid用のカメラアプリを開発しています。Android携帯電話のカメラ画像フォルダを確認するにはどうすればよいですか?

撮影した写真をデバイスのデフォルトのカメラフォトフォルダ、つまりAndroidのネイティブカメラが保存しているフォルダに保存する必要があります。

ネイティブカメラが撮影した写真がどこに保存されているのかを知るにはどうすればいいですか - これは異なるメーカー(Samsung、HTC、Motorola、Sony ...)とモデル(Galaxy Tab、ギャラクシーS4 ...)

答えて

18

使用getExternalStoragePublicDirectory()パラメータと

DIRECTORY_PICTURES

(又は、他のユースケースのために、そのようなDIRECTORY_MOVIESなどの他の同様のパラメータ)

+0

ああ!だからDIRECTORY_PICTURESはトップレベルのギャラリーディレクトリを返しませんか?それが私を混乱させていた。 – OC2PS

+13

私は、「DIRECTORY_DCIM」が「カメラとしてデバイスをマウントするときの写真とビデオの従来の場所」とのより良いマッチングであると主張します。つまり、「ネイティブカメラ」は何でも構いません。カメラがその画像をどこに保存するかを知るための先験*はありません。 – CommonsWare

+0

@CommonsWareありがとう!これは本当に私が探していたものです。 –

4

これはちょっと遅いですが、これを行うことができます:

String CameraFolder="Camera"; 
File CameraDirectory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString()); 
File[] files = CameraDirectory.listFiles(); 
for (File CurFile : files) { 
     if (CurFile.isDirectory()) { 
       CameraDirectory=CurFile.getName(); 
       break; 
     } 
} 
final String CompleteCameraFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString() + "/" + CameraFolder; 

オプションで、forループ内で操作を実行できます。

+0

このアプローチは私には当てはまりません。たとえば、私のDCIMディレクトリには4つのフォルダがあります。 –

+0

「スクリーンショット」、/サムネイル、他のアプリフォルダを持つことができます.... – OWADVL

0

このトピックに関する追加情報外部ストレージにアクセスするためのアクセス許可を追加する必要があります。または、listFiles()は常にnullを返します。あなたのAndroidManifest.xmlに下記を追加してください

<?xml version="1.0" encoding="utf-8"?> 
<manifest package="com.tomoima.filedirectory" 
     xmlns:android="http://schemas.android.com/apk/res/android"> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <application 
    ... 
関連する問題