对红米手机调用系统相机拍照功能的研究

对红米手机调用系统相机拍照功能的研究:

一:启动模式需要注意。
     Activity的启动模式会影响到  public void onActivityResult(int  requestCode, int  resultCode Intent data)方法的调用流程。如果调用相机的Activity的启动模式是singleInstance模式,那么在小米的系统中,当你设置好相机调用参数后,不管你有没有设置照片的输出位置uri,是通过何种方法设置的uri(不管是来源于文件的uri还是来源于自定义的contentProvider的uri)。只要一执行到 startActivityForResult(intent,REQUEST_CODE_TAKE_PICTURE);
这行代码,小米系统就不等你开始拍照就直接开始调用 onActivityResult方法返回结果,这个时候返回的结果当然是空了。并且当你拍完照了,点击对号按钮返回调用相机的界面的时候, onActivityResult方法偏偏这个时候它不执行了。呵呵。并且不管你是在Fragment中start的还是在activity中start的,甚至是把点击事件传递到activity中的,都不能阻止它无脑的没等你拍照就调用 onActivityResult 的流程。当我换了一种启动模式后,这个问题就不再出现了,但是我程序的界面跳转流程就需要有很大的改动。某米真坑。


二:某些操作会影响到返回结果。
     我们知道,正常情况下,经过调用系统相机拍照成功返回后resultCode的值应该为-1,既常量RESULT_OK的值。但是小米系统中有些操作也会影响到  public void onActivityResult(int  requestCode, int  resultCode Intent data) 方法中resultCode的值。比如当你的Activity承载有Fragment的时候,对Fragment的一些切换操作就会使resultCode的返回值为0而不是-1。照常理来说这是不应该的,但是小米就是这么坑爹。让你错了都不知道具体是什么原因。只能更改其他地方代码的写法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值