アプリケーションからデフォルトのデバイスカメラを呼び出して、インテントandroid.provider.MediaStore.ACTION_IMAGE_CAPTUREを使用して写真を撮ろうとしています。特定の画像をクリックして保存すると、2つの場所に保存されることを除いて、すべてが正常に機能しているようです。
1. At the default camera location.
2. At the location which i am passing with intent.
最初のオプションではなく、2番目のオプションを実行したいだけです。使用済みの定義された場所に.nomediaファイルを作成すると、写真がギャラリーの一部としてリストされないようになると思いましたが、後で写真が両方の場所に保存されていることがわかりました。
コードの私の関連部分は次のとおりです。
アクティビティ:
Intent intentCamera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
try {
tempDir = Environment.getExternalStorageDirectory();
// place where to store camera taken picture
photo = createTemporaryFile("picture", ".jpg", tempDir);
photo.delete();
} catch (Exception e) {
Toast.makeText(this, "Please check SD card! Error in fetching image",
Toast.LENGTH_SHORT).show();
}
if (photo != null) {
Uri mImageUri = Uri.fromFile(photo);
Log.i(TAG, "" + mImageUri.toString());
intentCamera.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri);
}
startActivityForResult(intentCamera, CAMERA_PIC_REQUEST);
対応する方法。
public File createTemporaryFile(String part, String ext,File tempDir) throws Exception {
tempDir = new File(tempDir.getAbsolutePath() +"/temp/");
if (!tempDir.exists()) {
tempDir.mkdir();
}
createNoMediaFile(tempDir.getAbsolutePath());
return File.createTempFile(part, ext, tempDir);
}
1を回避する方法、つまり画像をデフォルトのギャラリーの場所に保存する方法はありますか?ありがとう。