Android用のカメラアプリを開発しています。
1つの要件は、撮影した写真をデバイスのデフォルトのカメラ写真フォルダー、つまりAndroidのネイティブカメラが保存するフォルダーに保存することです。
ネイティブカメラが撮影した写真をどこに保存しているのかを知るにはどうすればよいですか?これは、メーカー(Samsung、HTC、Motorola、Sony ...)やモデル(Galaxy Tab、Galaxy S4など)によって異なる可能性があることを理解しています。 。)
getExternalStoragePublicDirectory() を使用します
パラメータ付き DIRECTORY_PICTURES
(または、他のユースケースでは、 DIRECTORY_MOVIES などの他の同様のパラメーター)
私はこれが少し遅れていることを知っていますが、あなたはこれを行うことができます:
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ループ内で操作を実行できます。
このトピックに関する追加情報。外部ストレージにアクセスする権限を追加する必要があります。そうしないと、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
...