Android 不带按钮的爆裂照相机

Android 不带按钮的爆裂照相机,android,Android,我创建了一个突发相机,我希望当活动开始时,相机开始自动拍照,而无需按下任何按钮 它说:不幸的是,当我尝试放置以下内容时,FrontVerify已停止: 预览、照相、拍照(快门、拉丝、, JPEG(回调) 关于onCreate方法 问题是:我想创建一系列的照片来模拟一个按钮。当用户把手指放在相机附近,它保持全黑时,我有一个算法告诉我black=TRUE,所以继续下一个活动。因此,我不需要任何物理或数字按钮,我可以使用相机解决这个问题 到目前为止,我唯一能让它工作的方法就是使用onClick方法和

我创建了一个突发相机,我希望当活动开始时,相机开始自动拍照,而无需按下任何按钮


它说:不幸的是,当我尝试放置以下内容时,FrontVerify已停止:

预览、照相、拍照(快门、拉丝、, JPEG(回调)

关于onCreate方法

问题是:我想创建一系列的照片来模拟一个按钮。当用户把手指放在相机附近,它保持全黑时,我有一个算法告诉我black=TRUE,所以继续下一个活动。因此,我不需要任何物理或数字按钮,我可以使用相机解决这个问题

到目前为止,我唯一能让它工作的方法就是使用onClick方法和 我真的想去掉这里的onClick方法:

public void onClick(View v) {
                    preview.camera.takePicture(shutterCallback, rawCallback,
                            jpegCallback);
                    buttonClick.setEnabled(false);
            }
突发摄像机的算法如下:

PictureCallback jpegCallback = new PictureCallback() {
        public void onPictureTaken(byte[] data, Camera camera) {
            FileOutputStream outStream = null;
            try {
                // write to local sandbox file system
                // outStream =
                // CameraDemo.this.openFileOutput(String.format("%d.jpg",
                // System.currentTimeMillis()), 0);
                // Or write to sdcard
                outStream = new FileOutputStream(String.format(
                        "/sdcard/eyeverify/still%d.jpg",
                        System.currentTimeMillis()));
                outStream.write(data);
                outStream.close();
                Log.d(TAG, "onPictureTaken - wrote bytes: " + data.length);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
            }
            Log.d(TAG, "onPictureTaken - jpeg");
            try {
                stillCount++;
                camera.startPreview();
                if (stillCount < 10) {
                    preview.camera.takePicture(shutterCallback, rawCallback,
                            jpegCallback);
                } else {
                    stillCount = 0;
                    buttonClick.setEnabled(true);
                }
            } catch (Exception e) {
                Log.d(TAG, "Error starting preview: " + e.toString());
            }
        }
    };

}
PictureCallback jpegCallback=新建PictureCallback(){
公共void onPictureTaken(字节[]数据,摄像头){
FileOutputStream扩展流=null;
试一试{
//写入本地沙盒文件系统
//扩展=
//CameraDemo.this.openFileOutput(String.format(“%d.jpg”),
//System.currentTimeMillis()),0);
//或者写SD卡
outStream=新文件OutputStream(String.format(
“/sdcard/eyevirify/still%d.jpg”,
System.currentTimeMillis());
外扩。写入(数据);
exptream.close();
Log.d(标记“onPictureTaken-写入字节:”+data.length);
}catch(filenotfounde异常){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}最后{
}
Log.d(标签“onPictureTaken-jpeg”);
试一试{
stillCount++;
camera.startPreview();
如果(仍然计数<10){
预览、照相、拍照(快门、拉丝、,
JPEG(回调);
}否则{
stillCount=0;
按钮单击。设置启用(true);
}
}捕获(例外e){
Log.d(标记“启动预览时出错:”+e.toString());
}
}
};
}
所以我想不出,如何启动应用程序,相机自动启动。

只要:

new Handler().postDelayed(new Runnable(){
  public void run(){
    yourBtn.performClick();
  }
}, 1000).

在OnStart或OnCreate中调用此选项:

preview.camera.takePicture(shutterCallback, rawCallback,
                        jpegCallback);
根据您希望在OnPause和OnResume上管理应用程序的方式,最好将其放入OnResume中。如果您希望它在暂停时或刚启动时以相机突发开始


我也会确保你在OnStop中清理你的资源。

因此,现在你有一个按钮可以执行它,但你希望它在启动应用程序时正确执行,为什么不把代码放在onCreate()方法中呢?我不明白,你不想要按钮,但仍然说你需要按钮,如果你把它放在onCreate上,为什么不工作呢?它说:不幸的是,FrontVerify已经停止,我根本不需要按钮。如果它崩溃,请发布logcat输出。