Stock Camera Intent以RESULT_OK结果但实际上没有保存文件

时间:2013-07-06 04:13:34

标签: android camera

几个星期前,我有这个工作,现在我感到非常困惑。一切都工作膨胀,除了文件从未实际创建。

public void takePic(){
    File photoPath = new File(getFilesDir(), "temp_img.jpg");
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoPath));
    startActivityForResult(intent, PHOTO);
}




@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(resultCode == RESULT_OK){
        if(requestCode == PHOTO){
            //stuff with file
        }
    }
}


//manifest:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

在我稍后使用该文件之前,每件事都会膨胀,但事实证明它不存在,因此得到了“找不到文件”。

1 个答案:

答案 0 :(得分:2)

getFilesDir()返回只有您的应用程序可以访问的目录,因此Camera应用程序无法保存该文件。将getFilesDir()替换为所有应用可以读/写的getExternalFilesDir(Environment.DIRECTORY_PICTURES)