Android Studio 模拟器相机无法保存照片

Android Studio emulator camera cannot save photos

无论我使用模拟相机还是将我的网络摄像头用作模拟设备的相机,我都无法保存照片。我的代码设置了一个新文件来保存照片,相机 activity 弹出,但在我拍照后,点击 'save' 或 'accept picture' 按钮没有任何反应。我可以通过点击取消 return 到我的应用 activity 的唯一方法。当我 运行 在我的 Galaxy S3 上使用此代码时,此代码有效,但在模拟的 Nexus 设备上无效。当我在 AVD 管理器中设置设备时,我总是确保启用将两个摄像头设置为模拟或网络摄像头 0,无论我使用哪个,并且我确保有一张 SD 卡(即使我保存到内部存储器)和内部存储足以容纳照片。在我的清单中,我声明了 android.permission.INTERNET、android.permission.WRITE_EXTERNAL_STORAGE 和 android.permission.CAMERA。有什么想法吗?

这是我启动相机意图的代码:

private void dispatchTakePictureIntent(int position) {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        File photoFile = null;
        try {
            photoFile = createImageFile(position);
        } catch (IOException ex) {
            Log.v("photo", "photoFile failed.");
        }
        if (photoFile != null) {
            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                    Uri.fromFile(photoFile));
            startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
        } else {
            Log.v("tag", "photoFile was equal to null.");
        }
    }
}

找到解决办法了!模拟相机没有返回,因为我使用了一个错误的目录(在上面的 createImageFile 中选择)来保存文件。我开始使用 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) 返回的目录并解决了问题。