1

アプリケーションからデフォルトのデバイスカメラを呼び出して、インテント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を回避する方法、つまり画像をデフォルトのギャラリーの場所に保存する方法はありますか?ありがとう。

4

1 に答える 1

1

onActivityResultは、画像のURIを返します。画像のパスを取得して、その場所から画像をコピーし、目的の場所に保存してから、ギャラリーから削除します。

于 2012-05-04T04:18:35.847 に答える