0

ここ数時間、このコードを取得して写真を正常に撮影し、携帯電話の SD カードにダウンロードしようとしました。何らかの理由で、写真が pictureFile に保存されません。何が間違っているのかわかりませんが、誰かが私にヒントを与えることができれば、それは素晴らしいことです.

public class PhotoTaker extends Activity {

    private Camera mCamera;
    private CameraPreview mCameraPreview;
    private File pictureFile;
    private CountDownTimer timer;
    public byte[] dataArray;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.photoview);

        mCamera = getCameraInstance();
        mCameraPreview = new CameraPreview(this, mCamera);

        FrameLayout preview = (FrameLayout) findViewById(id.camera_preview);
        preview.addView(mCameraPreview);

        //Getting the actual picture
        final PictureCallback mPicture = new PictureCallback() {

            public void onPictureTaken(byte[] data, Camera camera) {
                       picturereFile = getOutputMediaFile();
                       #the pictureFils always is equal to null here and it doesn't write out anywhere
                       if (pictureFile == null){
                    return;
                }

                try {
                    FileOutputStream fos = new FileOutputStream(pictureFile);
                    dataArray = data;
                    fos.write(data);
                    fos.close();

                } catch (FileNotFoundException e) {
                    Log.d("filenotfound", null);


                } catch (IOException e) {
                    Log.d("ioexception", null);

                }

            }

        };


        //Adding listener
        final Button captureButton = (Button) findViewById(id.button_capture);
        captureButton.setOnClickListener(
                new View.OnClickListener() {

                    public void onClick(View v) {
                        mCamera.takePicture(null, null, mPicture);
                        timer.cancel();
                    }
                });

/** Create a File for saving the image */

private static File getOutputMediaFile(){

    File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_PICTURES), "MyCameraApp");

    if (! mediaStorageDir.exists()){
        if (! mediaStorageDir.mkdirs()){
            Log.d("MyCameraApp", "failed to create directory");
            return null;
        }
    }

    // Create a media file name
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    File mediaFile;
    mediaFile = new File(mediaStorageDir.getPath() + File.separator +
            "IMG_"+ timeStamp + ".jpg");

    return mediaFile;
}

    }

LogCat のエラーは次のとおりです。

E/dalvikvm(524): Unable to open stack trace file '/data/anr/traces.txt': Permission denied

これで解決する必要がありますが、それでも同じエラーが発生します:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
4

0 に答える 0