5

今日、私は難しいことに対処しなければなりません。

カメラを起動して、撮影した画像を内部ストレージに移動せずに直接保存したいのですが。

    File targetDir = new File(getApplicationContext().getFilesDir()+File.separator+"PROJECTMAIN"+File.separator+"SUBFORDER");
    targetDir.mkdirs(); //create the folder if they don't exist

    File externalFile = new File(targetDir, "picturename.jpg");
    Uri imageURI = Uri.fromFile(externalFile);

    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageURI);
    startActivityForResult(takePictureIntent, actionCode);

それらを直接内部ストレージに保存しようとすると、写真を撮った後、カメラが「OK」ボタンのクリックを無視するようです。「内部」URIに問題があると思います。extra_outputEnvironment.getExternalStorageDirectory()の代わりに使用すると、すべてが正常に機能しますが、後でファイルを内部ストレージに移動する必要があります(移動プロセスは「getApplicationContext()」に正常に機能します) getApplicationContext().getFilesDir().getFilesDir() ")

写真を撮って[OK]ボタンを押して内部URIを続行しても、カメラは何もしません...Androidのストレージではそれが難しいとは信じられません。

何か案は?多分カメラは単に写真を外部ストレージに保存することを可能にしますか?

4

2 に答える 2

3

次のコードを試してください

File dir= context.getDir("dirname", Context.MODE_PRIVATE); //Creates Dir inside internal memory
File file= new File(dir, "filename");  //It has directory details and file name
FileOutputStream fos = new FileOutputStream(file);
于 2013-03-18T11:47:37.277 に答える