我正在使用这段代码,但我的 onActivityResult 从未被调用。我过去常常在不传递将图像保存到 SD 卡的额外 Intent 的情况下发出请求,并且工作正常 - onActivityResult()
会像我期望的那样被调用。但由于我添加了 SD 卡代码 - 运气不好!
我是否添加(或遗漏)了某些内容?我在关注 https://stackoverflow.com/a/12277455/2884981举个例子。
这是我的代码,
static final int CAPTURE_IMAGE_CALLBACK = 1;
private void dispatchTakePictureIntent()
{
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File photo = null;
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
{
photo = new File(android.os.Environment.getExternalStorageDirectory(), "myapp/images/" + File.separator + timeStamp + ".png");
}
else
{
photo = new File(getCacheDir(), "myapp/images/" + File.separator + timeStamp + ".png");
}
if ( photo != null)
{
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
}
if (takePictureIntent.resolveActivity(getPackageManager()) != null)
{
startActivityForResult(takePictureIntent, CAPTURE_IMAGE_CALLBACK);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
// This never gets hit!
if (requestCode == CAPTURE_IMAGE_CALLBACK)
{
// etc
我只是想在单击勾号后在相机应用程序中添加 - 没有任何反应。我反复点击勾号,它就停留在相机屏幕上。控制永远不会返回到主应用程序。
最佳答案
我需要添加这个:
photo.getParentFile().mkdirs();
photo.createNewFile();
我认为它失败的原因是因为我试图将图像写入的文件不存在。
关于android - 在 Android 中拍照后未调用 onActivityResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21421419/