您的位置:首页 > 移动开发 > Android开发

android调用系统拍照

2015-06-16 11:36 267 查看
1.

需要权限:

[code]<uses-permission android:name="android.permission.CAMERA" />


有些机型可能还需要下面的权限(我测试的时候没有加小米平板16G拍照返回data为null):

[code]<uses-feature android:name="android.hardware.camera" />




2.拍照回来后奔溃

最近写程序时用到了系统拍照获取照片,发现调用相机拍完照片返回时,触发它的activity的生命周期调用了onDestroy()–>onCreate();重新走了onCreate()方法;导致系统崩溃。

[code]方法一:
    刚开始调用了onSaveInstanceState(Bundle savedInstanceState)和onRestoreInstanceState(Bundle savedInstanceState)这个方法来实现,虽然方法比较笨,但是可以通过在onSaveInstanceState中保存一些你需要的变量,在onCreate()方法中判断savedInstanceState是否为null,不为null则调用onRestoreInstanceState()方法取出之前存的变量来使用,这相当于重新加载了一边当前activity。


[code]方法二:
    上面的方法可行,但并不是解决问题的根本办法,后来通过查看发现在调用相机时,activity从竖屏切换到了横屏,在横竖屏切换导致了activity重新装载,找到根本原因后,在activity中通过android:configChanges="orientation|keyboardHidden" 这个属性,可以约束调用相机时,保持当前activity竖屏状态不变,从而解决了activity重新加载的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: