gpt4 book ai didi

android - 当屏幕方向改变时,相机 Activity 导致 uri 变为空

转载 作者:太空宇宙 更新时间:2023-11-03 10:28:42 25 4
gpt4 key购买 nike

我设置了一个数据成员 imageUri,并将其传递到启动相机 Activity 的 Intent 中。在相机 Activity 中,我拍照并旋转屏幕,然后单击复选框返回我的 Activity 。当我这样做时,调用 onActivityResult 时 imageUri 为空。如果我不旋转屏幕,一切正常,并且 imageUri 不为空。

onConfigurationChanged 没有在我的 Activity 中被调用,所以这不是问题。

public void takePhoto() {
//define the file-name to save photo taken by Camera activity
fileName = getFileNameDate();
//create parameters for Intent with filename
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, fileName);
values.put(MediaStore.Images.Media.DESCRIPTION,"Image capture by camera");

imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

//create new Intent
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent, picture_result_code);

}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i("Camera_onActivityResult", "Got activity result requestCode = " + requestCode + " resultCode: " + resultCode);
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case picture_result_code:
if (resultCode == Activity.RESULT_OK) {
try {
Log.i("Camera", "Preparing to upload image...");

picFile = convertImageUriToFile(imageUri); // Here imageUri is null and causing crash

uploadFile(picFile.getPath());

} catch (Exception e) {
Toast.makeText(this, "Failed to load", Toast.LENGTH_SHORT).show();
Log.e("Camera", e.toString());
e.printStackTrace();
}
}
}
}

我应该通过其他方式检索图像吗?

谢谢

最佳答案

我相信 imageUri 是您 Activity 中的一个字段,对吗?如果旋转设备, Activity 将被销毁并重新启动,并且您的字段为空。您必须将 URI 保存为 Activity 状态的一部分。有几种可能的方法可以实现这一点,其中一个是使用 onSaveInstanceState(),有关详细信息,请参见此处:http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState%28android.os.Bundle%29

关于android - 当屏幕方向改变时,相机 Activity 导致 uri 变为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9214350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com