我已经通过Intent
创建了一个Intent.createChooser
,并且可以成功地提示用户在选择图像还是拍照之间进行选择。如果要拍照,我想将照片存储到外部存储器中,所以我想知道如果选择了相机意图怎么创建File
?
用于创建选择器Intent
的代码:
Intent receiver = new Intent(requireContext(),ImageBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(requireContext(),
REQUEST_PROFILE_PICTURE,receiver,PendingIntent.FLAG_UPDATE_CURRENT);
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Intent getPictureIntent = new Intent();
getPictureIntent.setType("image/*");
getPictureIntent.setAction(Intent.ACTION_GET_CONTENT);
Intent chooserIntent = Intent.createChooser(getPictureIntent,
getString(R.string.imageDialogTitle),pendingIntent.getIntentSender());
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{takePictureIntent});
startActivityForResult(chooserIntent,REQUEST_PROFILE_PICTURE);
如果我创建File
专门用于通过以下方式拍照,则可以创建Intent
并将图像存储到其中:
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
我最好的选择是在不管用户选择时,在启动chooseIntent之前先创建文件吗?
如果要在选择器Intent
之前创建文件,我将如何知道用户是在onActivityResult()
拍摄了照片还是选择了照片?如果我是正确的话,则requestcode
中返回的onActivityResult()
来自选择者Intent
,因此无论选择摄影机还是画廊,它始终是REQUEST_PROFILE_PICTURE
。
任何见识都会受到赞赏。