Android在调用系统相机拍照后,点确定无法返回前一个Activity,而是重复在调用相机!

huazai_v5 2014-04-24 03:03:37
不知道什么问题,在网上找了好久都没好的解决方案。不知有没有大神帮下啊~~
不过,同样的代码,我用Google手机跑是完全没问题的。不过换成小米,问题如上!一直出现。。。


代码:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1);

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
Bundle bundle = data.getExtras();
bitmapSave = (Bitmap) bundle.get("data");// 获取相机返回的数据,并转换为Bitmap图片格式
mImageView.setImageBitmap(bitmapSave);// 将图片显示在ImageView里
}
}
...全文
14340 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
liu_xiong 2016-12-30
  • 打赏
  • 举报
回复
引用 19 楼 xingfuwangye 的回复:
intent = new Intent(xzhsrc.this,CameraActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // 楼主少了这个。没有这个finsh 无法返回的 startActivityForResult(intent, 1000);
我是用这位仁兄的方法解决的
今夜无雨t 2016-03-02
  • 打赏
  • 举报
回复
引用 18 楼 u010906636 的回复:
我复述一下我的问题,看看能不能帮到大家。 问题:“调用小米4手机拍照,不能点击打勾,就算点击了也没有反应。但是同样的代码也小米2,2S上没有问题,3上偶尔会出现。” 原因:Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(filePath, TEMP_IMAGE_NAME))); startActivityForResult(intent, 1); 如果此处Uri.fromFile(new File(filePath, TEMP_IMAGE_NAME),图片的地址有问题就不能点击确认。 这个问题是小米系统的原因,貌似DCIM和Picture这两个文件的权限不一样。 具体参看这两个文件路径: 1、Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath(); 2、 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); 用第一个就可以解决,小米4出现的问题。
引用 18 楼 u010906636 的回复:
我复述一下我的问题,看看能不能帮到大家。 问题:“调用小米4手机拍照,不能点击打勾,就算点击了也没有反应。但是同样的代码也小米2,2S上没有问题,3上偶尔会出现。” 原因:Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(filePath, TEMP_IMAGE_NAME))); startActivityForResult(intent, 1); 如果此处Uri.fromFile(new File(filePath, TEMP_IMAGE_NAME),图片的地址有问题就不能点击确认。 这个问题是小米系统的原因,貌似DCIM和Picture这两个文件的权限不一样。 具体参看这两个文件路径: 1、Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath(); 2、 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); 用第一个就可以解决,小米4出现的问题。
正解!
陈小橙 2016-02-27
  • 打赏
  • 举报
回复
引用 16 楼 llj7509614 的回复:
[quote=引用 15 楼 u010940300 的回复:] [quote=引用 10 楼 u013436635 的回复:] [quote=引用 8 楼 wanghonghongkx 的回复:] 请问是怎么解决的呢?我也遇到这样的问题,还有的时候 是可以拍,点击确定之后就回到了前一个Activity里面去了,郁闷啊,啥日志都没有!!!!!!!!!
解决了。由于调用系统的相机,前一个Activity被destory掉了,当拍完照片返回前一个Activity的时候又重新执行了onCreate()方法,所以又重新自动调用了系统相机。解决方法:我在这个Activity里面添加了一个拍照的按钮,点击按钮再调用相机,这样就不会出现类似的情况了。[/quote] 我也碰到这个问题了 目前还没有解决,但是你说的,调用系统相机的时候 前一个 activity被 destroy掉了 这个说法有问题吧, 我在oncreate方法中 onresunme方法中 打印syso一些字符做标记, 表明 调用系统相机的时候 前一个activity只是onpause了 而没有被销毁。[/quote] 有的手机是调用一次就onDestory,有的手机是两次以后onDestory,有的手机是很多张也不onDestory,亲测,为此正烦心中,调用系统相机就拍一张就返回,不要连续拍,有很大的隐患[/quote] 请问是否已经解决了?
  • 打赏
  • 举报
回复
intent = new Intent(xzhsrc.this,CameraActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // 楼主少了这个。没有这个finsh 无法返回的 startActivityForResult(intent, 1000);
惊鸿伯爵 2015-11-24
  • 打赏
  • 举报
回复
我复述一下我的问题,看看能不能帮到大家。 问题:“调用小米4手机拍照,不能点击打勾,就算点击了也没有反应。但是同样的代码也小米2,2S上没有问题,3上偶尔会出现。” 原因:Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(filePath, TEMP_IMAGE_NAME))); startActivityForResult(intent, 1); 如果此处Uri.fromFile(new File(filePath, TEMP_IMAGE_NAME),图片的地址有问题就不能点击确认。 这个问题是小米系统的原因,貌似DCIM和Picture这两个文件的权限不一样。 具体参看这两个文件路径: 1、Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath(); 2、 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); 用第一个就可以解决,小米4出现的问题。
ly576319111 2015-10-18
  • 打赏
  • 举报
回复
此问题已解决,是这些手机的相机程序在保存照片的时候都会加一些特效,尤其是那个旋转,导致前面的Activity重新onCreate了。 解决方案:在清单文件的Activity中加入属性(必须)android:configChanges="orientation|screenSize|keyboardHidden|keyboard|",(可选)还可以加入android:screenOrientation="portrait"来强制横屏或者竖屏。这样Activity就不会在旋转的时候销毁重新创建了。
llj7509614 2015-02-09
  • 打赏
  • 举报
回复
引用 15 楼 u010940300 的回复:
[quote=引用 10 楼 u013436635 的回复:] [quote=引用 8 楼 wanghonghongkx 的回复:] 请问是怎么解决的呢?我也遇到这样的问题,还有的时候 是可以拍,点击确定之后就回到了前一个Activity里面去了,郁闷啊,啥日志都没有!!!!!!!!!
解决了。由于调用系统的相机,前一个Activity被destory掉了,当拍完照片返回前一个Activity的时候又重新执行了onCreate()方法,所以又重新自动调用了系统相机。解决方法:我在这个Activity里面添加了一个拍照的按钮,点击按钮再调用相机,这样就不会出现类似的情况了。[/quote] 我也碰到这个问题了 目前还没有解决,但是你说的,调用系统相机的时候 前一个 activity被 destroy掉了 这个说法有问题吧, 我在oncreate方法中 onresunme方法中 打印syso一些字符做标记, 表明 调用系统相机的时候 前一个activity只是onpause了 而没有被销毁。[/quote] 有的手机是调用一次就onDestory,有的手机是两次以后onDestory,有的手机是很多张也不onDestory,亲测,为此正烦心中,调用系统相机就拍一张就返回,不要连续拍,有很大的隐患
MARGI3 2014-12-31
  • 打赏
  • 举报
回复
引用 10 楼 u013436635 的回复:
[quote=引用 8 楼 wanghonghongkx 的回复:] 请问是怎么解决的呢?我也遇到这样的问题,还有的时候 是可以拍,点击确定之后就回到了前一个Activity里面去了,郁闷啊,啥日志都没有!!!!!!!!!
解决了。由于调用系统的相机,前一个Activity被destory掉了,当拍完照片返回前一个Activity的时候又重新执行了onCreate()方法,所以又重新自动调用了系统相机。解决方法:我在这个Activity里面添加了一个拍照的按钮,点击按钮再调用相机,这样就不会出现类似的情况了。[/quote] 我也碰到这个问题了 目前还没有解决,但是你说的,调用系统相机的时候 前一个 activity被 destroy掉了 这个说法有问题吧, 我在oncreate方法中 onresunme方法中 打印syso一些字符做标记, 表明 调用系统相机的时候 前一个activity只是onpause了 而没有被销毁。
晓百 2014-11-14
  • 打赏
  • 举报
回复
我是点击按钮 跳到相机 但是拍完以后 也没法回到前一个Activity 我的小米 其他的可以
hx359197467 2014-09-04
  • 打赏
  • 举报
回复
我是小米手机可以,三星手机不行
远方ui 2014-08-13
  • 打赏
  • 举报
回复
我也是在这个Activity里面添加了一个拍照的按钮,点击按钮再调用相机。还是没法确定返回到之前的activity,也是只有小米手机不行,三星中兴的都可以。
huazai_v5 2014-04-30
  • 打赏
  • 举报
回复
引用 9 楼 ycdlove 的回复:
解决了吗?我也碰到了 LZ?
解决了。由于调用系统的相机,前一个Activity被destory掉了,当拍完照片返回前一个Activity的时候又重新执行了onCreate()方法,所以又重新自动调用了系统相机。解决方法:我在这个Activity里面添加了一个拍照的按钮,点击按钮再调用相机,这样就不会出现类似的情况了。
huazai_v5 2014-04-30
  • 打赏
  • 举报
回复
引用 8 楼 wanghonghongkx 的回复:
请问是怎么解决的呢?我也遇到这样的问题,还有的时候 是可以拍,点击确定之后就回到了前一个Activity里面去了,郁闷啊,啥日志都没有!!!!!!!!!
解决了。由于调用系统的相机,前一个Activity被destory掉了,当拍完照片返回前一个Activity的时候又重新执行了onCreate()方法,所以又重新自动调用了系统相机。解决方法:我在这个Activity里面添加了一个拍照的按钮,点击按钮再调用相机,这样就不会出现类似的情况了。
EastWoodYang 2014-04-29
  • 打赏
  • 举报
回复
解决了吗?我也碰到了 LZ?
源源源源圆圆 2014-04-29
  • 打赏
  • 举报
回复
请问是怎么解决的呢?我也遇到这样的问题,还有的时候 是可以拍,点击确定之后就回到了前一个Activity里面去了,郁闷啊,啥日志都没有!!!!!!!!!
奋斗并快乐着 2014-04-25
  • 打赏
  • 举报
回复
startActivityForResult 放在哪里了?不会是在onStart或者onResume里吧
逍遥笑 2014-04-24
  • 打赏
  • 举报
回复
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 1);这个是不是还缺少参数啊,可以网上找个启动相机的例子看下
huazai_v5 2014-04-24
  • 打赏
  • 举报
回复
引用 3 楼 hjywyj 的回复:
小米手机没法直接获取到bitmap的。
可是程序也没报任何的错误啊~为什么相机还在循环调用呢?
huazai_v5 2014-04-24
  • 打赏
  • 举报
回复
引用 2 楼 u013436635 的回复:
[quote=引用 1 楼 jack_wolf_ 的回复:] 换其他手机试一试
换成三星的机子也是一样的问题。。。[/quote] 可是程序也没报任何的错误啊~为什么相机还在循环调用呢?
加载更多回复(2)

80,470

社区成员

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

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