gpt4 book ai didi

android - jellybean 上输入流的 onActivityResult 数据崩溃

转载 作者:行者123 更新时间:2023-11-30 01:56:13 25 4
gpt4 key购买 nike

这是我正在使用的代码

Intent i = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(i, cameraData);


protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
try {
InputStream is = getContentResolver().openInputStream(data.getData());
Main.this.getContentResolver().delete(data.getData(), null,
null);

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
String error = e.toString();
Dialog d = new Dialog(this);
TextView tv = new TextView(this);
tv.setText(error);
d.setContentView(tv);
d.show();
}
} else {
is = null;
}
}

我这样做是因为我不想将图片保存到 dcim 文件夹。它在三星、htc 和其他一些设备上运行良好,但在阿尔卡特一触式 5020x Jelly Bean 4.1.1 上崩溃,返回空指针异常。

是否有另一种方法可以做到这一点,但不能将图片保存到 dcim 文件夹。我已经看到很多解决方案来做到这一点,但他们都将图片保存到 dcim 文件夹

谢谢

最佳答案

I'm doing this way because i don't want to save pics to dcim folder.

然后在您的 ACTION_IMAGE_CAPTURE Intent 中包含 EXTRA_OUTPUT,以告知处理您的请求的相机应用将图像放在哪里。引用 the documentation :

The caller may pass an extra EXTRA_OUTPUT to control where this image will be written. If the EXTRA_OUTPUT is not present, then a small sized image is returned as a Bitmap object in the extra field.

您编写的代码不会执行文档中的任何内容。相反,您假设相机应用程序将返回图像所在位置的 Uri这不是文档协议(protocol)的一部分,因此您的代码在与许多相机应用交互时会失败。

Is there another way to do this, but not to save pics to dcim folder.

此代码会将图像放在外部存储的另一个位置:

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import java.io.File;

public class CameraContentDemoActivity extends Activity {
private static final int CONTENT_REQUEST=1337;
private File output=null;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Intent i=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

output=new File(getExternalFilesDir(null), "CameraContentDemo.jpeg");
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(output));

startActivityForResult(i, CONTENT_REQUEST);
}

@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == CONTENT_REQUEST) {
if (resultCode == RESULT_OK) {
// use the output File object
}
}
}
}

关于android - jellybean 上输入流的 onActivityResult 数据崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32172087/

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