Android 要从摄像机选择中触发ActivityResult,需要什么?

Android 要从摄像机选择中触发ActivityResult,需要什么?,android,camera,Android,Camera,我有以下代码,创建了从相机库中选择照片的意图: public void onPhotoButtonClick(View view) { File root = new File(Environment.getExternalStorageDirectory() + File.separator + "photos" + File.separator); root.mkdirs(); String fileName = String.format("photo_%s.j

我有以下代码,创建了从相机库中选择照片的意图:

public void onPhotoButtonClick(View view) {
    File root = new File(Environment.getExternalStorageDirectory() + File.separator + "photos" + File.separator);

    root.mkdirs();

    String fileName = String.format("photo_%s.jpg", System.currentTimeMillis());

    File sdImageMainDirectory = new File(root, fileName);

    photoUri = Uri.fromFile(sdImageMainDirectory);

    List<Intent> cameraIntents = new ArrayList<Intent>();

    Intent captureIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

    PackageManager packageManager = getPackageManager();

    List<ResolveInfo> listCam = packageManager.queryIntentActivities(captureIntent, 0);

    for(ResolveInfo resolvedInfo : listCam) {
        String packageName = resolvedInfo.activityInfo.packageName;

        Intent intent = new Intent(captureIntent);

        intent.setComponent(new ComponentName(packageName, resolvedInfo.activityInfo.name));
        intent.setPackage(packageName);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);

        cameraIntents.add(intent);
    }

    Intent galleryIntent = new Intent();

    galleryIntent.setType("image/*");
    galleryIntent.setAction(Intent.ACTION_PICK);

    Intent chooserIntent = Intent.createChooser(galleryIntent, "Select source");

    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, cameraIntents.toArray(new Parcelable[cameraIntents.size()]));

    startActivityForResult(chooserIntent, SELECT_PHOTO);
}
我的舱单中有以下内容:

<uses-feature android:name="android.hardware.camera" android:required="false"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


我遗漏了什么吗?

您是否尝试包含
?尝试不使用
额外的意图,而只是在
动作图像捕获上调用
startActivityForResult()
。顺便说一句,传递到
onActivityResult()
Intent
通常不会有动作字符串,而且它当然不必有与您在
Intent
中使用的动作字符串相同的动作字符串。没有办法这样做?显然我无法写入文件路径(我在Android Studio中)。
<uses-feature android:name="android.hardware.camera" android:required="false"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />