0

数週間前にこれを機能させましたが、今では完全に困惑しています。ファイルが実際に作成されないことを除いて、すべてうまくいきます。

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" />

後でファイルを使用するまですべてがうまくいき、ファイルが存在しないことが判明したため、「ファイルが見つかりません」というメッセージが表示されます。

4

1 に答える 1

2

getFilesDir()アプリケーションのみがアクセスできるディレクトリを返すため、カメラ アプリはファイルを保存できません。すべてのアプリが読み書きできるものにgetFilesDir()置き換えます。getExternalFilesDir(Environment.DIRECTORY_PICTURES)

于 2013-07-06T04:21:54.317 に答える