关于android调用系统摄像机拍照之后返回数据问题

HelloXiaoyu 2011-11-07 11:10:00
问题描述:
我启动一个列表页activty(A),是为了传递一个唯一ID,然后单击这个列表中的列表项,启动一个Ienten来打开一个activty(B),调用代码:

Intent intent = new Intent();
intent.setClass(StoreList.this, SettingCollect.class);

Bundle bundle = new Bundle();
bundle.putString("UserPhone", userPhone);
bundle.putString("StoreId", storeId);
intent.putExtras(bundle);

startActivity(intent);

在界面activty(B)有个拍照的按钮,点击调用系统摄像机进行拍照,调用代码:

Intent i = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(i, Activity.DEFAULT_KEYS_DIALER);


弹出拍照界面,拍照结束原本应该返回到activty(B),现在却返回到了activty(A),请问如何解决,谢谢。紧急。

比较紧急,麻烦大神们解决下。。。非常感谢

...全文
847 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
HelloXiaoyu 2011-11-08
  • 打赏
  • 举报
回复
唉,都一天了还没人帮忙解决。。。伤心呀。。。
HelloXiaoyu 2011-11-07
  • 打赏
  • 举报
回复
大神们,帮帮忙吧。。。谢谢呀。
HelloXiaoyu 2011-11-07
  • 打赏
  • 举报
回复
大神们,帮帮忙吧。。。谢谢呀。
HelloXiaoyu 2011-11-07
  • 打赏
  • 举报
回复
不是吧,没人解决问题吗?
HelloXiaoyu 2011-11-07
  • 打赏
  • 举报
回复
麻烦大神们解决下。谢谢了。。。
HelloXiaoyu 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 read_act 的回复:]

你贴出的那些个代码我试了下, data 并不为空, 不过我把Switch 去掉了,所以, 你看一下startActivityForResult中的第二个参数和 switch 中的参数是不是用得不对, 下班咯!
[/Quote]

这个问题是有一部分手机出现的问题,比方HTC系列的。拍照之后会弹出一个确定按钮,这个确定按钮相当于返回,也就是说在这个通过intent打开的Activity 直接返回去了,这时onActivityResult事件获取到的data值为null。
read_act 2011-11-07
  • 打赏
  • 举报
回复
你贴出的那些个代码我试了下, data 并不为空, 不过我把Switch 去掉了,所以, 你看一下startActivityForResult中的第二个参数和 switch 中的参数是不是用得不对, 下班咯!
HelloXiaoyu 2011-11-07
  • 打赏
  • 举报
回复
但是我不好把代码发给你呀。。唉。
read_act 2011-11-07
  • 打赏
  • 举报
回复

[code=Java.]
//代码放这里
[/code.]

//里面的点过掉就行了


里面的点去掉
现在没事,我可以看一下 258114255@qq.com
HelloXiaoyu 2011-11-07
  • 打赏
  • 举报
回复
搜索了半天,尝试了很多办法还是解决不了。希望大神们帮下忙,拜谢了。
HelloXiaoyu 2011-11-07
  • 打赏
  • 举报
回复
一开始用了[code.] [/code.] 发现没用。所以就没用了。
大神们,帮下忙吧。实在解决不了。郁闷。
read_act 2011-11-07
  • 打赏
  • 举报
回复
好像没什么问题, 不过super 请放在方法的第一行, 在B的onDestroy中打印一个Log看看是什么时候调用的,还有
代码请用 [code.] [/code.]
HelloXiaoyu 2011-11-07
  • 打赏
  • 举报
回复
Activity(B)的主要代码:

拍摄按钮的监听事件:
btnCamera.setOnClickListener(new Button.OnClickListener()
{

public void onClick(View v)
{
Intent i = new Intent("android.media.action.IMAGE_CAPTURE");

startActivityForResult(i, Activity.DEFAULT_KEYS_DIALER);
}
});



获取拍摄图片的事件:
protected void onActivityResult(int requestCode, int resultCode,Intent data)
{
switch(resultCode)
{
case RESULT_OK:
super.onActivityResult(requestCode, resultCode, data);
if(data!=null){
Bundle extras = data.getExtras();
Bitmap bmp = (Bitmap) extras.get("data");
ssbmp=bmp;

ivCashierpic.setImageBitmap(bmp); //设置拍摄图片在界面上显示
hasShootPic = true;
}
else
{
hasShootPic = false;
}
break;
default:
break;
}

}

这个事件在有的手机里面测试是有问题的,因为获取的data内容是null,这个暂时我也解决不了。如果大神有办法,帮忙一起解决下。谢谢诶
read_act 2011-11-07
  • 打赏
  • 举报
回复
把Activity(b)中的代码贴出来, 还有,看看Log, 会不会是被系统KILL了
HelloXiaoyu 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wyx100 的回复:]

在b调用startActivityForResult之前,把自己finish掉了
[/Quote]

[Quote=引用 4 楼 fengli3863 的回复:]

你给出的代码,不可能返回a吧,除非是在b调用startActivityForResult之前,把自己finish掉了
这些代码我之前写过,没有任何问题
[/Quote]

A是一个列表,点击列表项目,启动B,在B界面我又一个图形现实框,和一个按钮(拍摄照片),点击拍摄照片启动本地摄像头进行拍照,拍摄完成,原本应该返回到B界面,但是现在确实返回到A。

wyx100 2011-11-07
  • 打赏
  • 举报
回复
在b调用startActivityForResult之前,把自己finish掉了
毛豆先生Max 2011-11-07
  • 打赏
  • 举报
回复
你给出的代码,不可能返回a吧,除非是在b调用startActivityForResult之前,把自己finish掉了
这些代码我之前写过,没有任何问题

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧