当前位置: 代码迷 >> Android >> Camera没法回调picturecallback函数
  详细解决方案

Camera没法回调picturecallback函数

热度:66   发布时间:2016-04-28 03:56:10.0
Camera无法回调picturecallback函数
package com.test;   
  
import android.app.Activity;   
import android.hardware.Camera;   
import android.hardware.Camera.PictureCallback;   
import android.os.Bundle;   

public class BootTestActivity extends Activity {    
  
    private Camera mCam;     

    protected void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   
        setContentView(R.layout.main);   
        
                try
                {
                    mCam  = Camera.open();
                    if (mCam != null)
                    {   
                        System.out.println("开始拍照了吗?");
                       mCam.takePicture(null, null, pictureCallBack);   
                       System.out.println("拍照结束了吗?");
                    }       
                }

                catch(Exception e)
                {
                    System.out.println(e);
                }
                finally
                {
                     if (mCam != null) 
                     {
                         mCam .release();
                         System.out.println("release");
                     }
                }                
    }   
    
  
    private PictureCallback pictureCallBack = new Camera.PictureCallback() {

        public void onPictureTaken(byte[] data, Camera camera) {
        
            System.out.println("可是我并没有被调用呀!");
              
                }   
    };         
}  



权限:
     <!-- 授予程序使用摄像头的权限 -->
<uses-feature android:name="android.hardware.camera" />  
<uses-feature android:name="android.hardware.camera.autofocus" />  
<uses-permission android:name="android.permission.CAMERA" />  



为什么呢?在魅族MX2上就没用,但是在三星9300就行
------解决思路----------------------
试试 四参数的 takepicture  public final void takePicture (Camera.ShutterCallback shutter, Camera.PictureCallback raw, Camera.PictureCallback postview, Camera.PictureCallback jpeg)
------解决思路----------------------
open和takepicture最好不要放在onCreate中,建议使用线程来open,待open成功之后再向activity发消息执行takepicture方法

另外,open完后最好执行startpreview
------解决思路----------------------
引用:
引用:
关于拍照,有前置拍照和后置拍照,如果是前置拍照,你如果是用的2.2的SDK,测试手机是2.3就不会回调,2.2的前置拍照,不同的手机,其中传入的参数也不同,想要兼容用反射是可以的