我有一个android应用程序,其中包含多个活动。
在其中一个中,我使用了一个按钮,该按钮将调用设备camera:
public void onClick(View view) {
Intent photoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(photoIntent, IMAGE_CAPTURE);
}在同一个活动中,我为图像结果调用了OnActivityResult方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == IMAGE_CAPTURE) {
if (resultCode == RESULT_OK) {
Bitmap image = (Bitmap) data.getExtras().get("data");
ImageView imageview = (ImageView) findViewById(R.id.pic);
imageview.setImageBitmap(image);
} else if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "CANCELED ", Toast.LENGTH_LONG).show();
}
}
}问题是意图data为空,OnActivityResult方法直接转到(resultCode == RESULT_CANCELED),应用程序返回到以前的活动。
如何解决此问题?在调用相机后,应用程序返回到当前活动,其中包含将包含所拍摄照片的ImageView。
谢谢
发布于 2021-05-26 18:28:09
我使用contentResolver创建路径,并且它起作用了。
var values = ContentValues()
values.put(MediaStore.Images.Media.TITLE, "MyPicture")
values.put(
MediaStore.Images.Media.DESCRIPTION,
"Photo taken on " + System.currentTimeMillis()
)
cameraUri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values)
val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, cameraUri);
startActivityForResult(cameraIntent, REQUEST_CODE)https://stackoverflow.com/questions/9890757
复制相似问题