关于Android 4.4(华为)调用系统相机问题
发布日期:2021-10-04 02:53:21 浏览次数:5 分类:技术文章

本文共 1046 字,大约阅读时间需要 3 分钟。


最近使用测试机(华为,4.4系统)调用系统相机进行拍照时,点击拍照完成,手机又反回了拍照页面,此时应该setResult上一个页面,但是上一个页面的onActivityResult没有被调用,大概有些小米手机也会这样吧,记录下解决方法:

原先是在A页面的onCreate方法中启动了调用系统相机:

这里写图片描述

这时启动了系统相机界面B,拍照完成后setResult返回无法调用onActivityResult,还有一个Error,忘记是啥了,大概意思是说在这个界面onresume的时候出现的问题。

解决方案是:

把启动系统相机的代码放在A页面的onresume方法中即可解决:
这里写图片描述

ps:千万别在oncreate方法中启动。


在三星系列手机上调用系统相机可能会拿不到返回值的相关问题:


调用系统相机:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);mPicUri = "";intent.putExtra(MediaStore.EXTRA_OUTPUT, mPicUri);startActivityForResult(intent, requestCode);

结果拍照回来mPicUri这个没有值,但是本地是有图片的…这个问题主要是三星拍照返回后屏幕方向转换并重新创建了单前的Activity,导致在OnActivityResult中不能拿到值。

首先第一可以先试着给activity节点加上些常数,告诉手机这个页面重新创建的时候参数给我留着:

android:configChanges="keyboardHidden|orientation|screenSize"android:screenOrientation="portrait"

…….

如果这个还不行,那么久采用跳转一个透明的activity方式来传递数据,也就是
CurrentActivity——>没有布局的Activity——>调用拍照三星

没有布局的Activity作为一个中间层,可以在onSaveInstanceState方法中保存好值【outState.putString("tag",uri)】,当被系统重新创建这个Activity时取出保存的数据【oncreate 中 savedInstanceState.getString("tag")】,然后返回给CurrentActivity这个页面即可(这样有个好处,用户不会感觉到重新创建屏幕旋转)!


转载地址:https://blog.csdn.net/leifengpeng/article/details/52316282 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android JNI 动态注册方法(JNI_OnLoad)
下一篇:关于使用tesseract-ocr开发简单的图文识别(转)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月24日 20时32分10秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章