Android 安卓闪光灯应用程序

Android 安卓闪光灯应用程序,android,android-camera,Android,Android Camera,我想为Android设备创建一个应用程序,它有两个按钮,一个按钮用于“开”,另一个按钮用于“关”。我在网上搜索了一个例子,我看到了很多例子,但它们组织得很差(对我来说)。到目前为止,我创建的是带有按钮的布局,主要活动的代码是: package com.simple.flashlight; import android.os.Bundle; import android.app.Activity; import android.graphics.Camera; import android.h

我想为Android设备创建一个应用程序,它有两个按钮,一个按钮用于“开”,另一个按钮用于“关”。我在网上搜索了一个例子,我看到了很多例子,但它们组织得很差(对我来说)。到目前为止,我创建的是带有按钮的布局,主要活动的代码是:

 package com.simple.flashlight;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Camera;
import android.hardware.Camera.Parameters;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class Main extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_menue);

        Button turnOnButtOn = (Button) findViewById (R.id.button1);
        Button turnOnButtOff = (Button) findViewById (R.id.button2);


        turnOnButtOn.setOnClickListener(new Button.OnClickListener(){
            public void onClick(View cameraButton){

            }
        });
    }
}
现在我想做一些类似的事情(伪代码):

如果有任何完整的参考资料(我是android新手),那就太好了。
谢谢

首先,您需要在清单中添加使用手电筒的权限:

 <permission android:name="android.permission.FLASHLIGHT"
             android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
             android:protectionLevel="normal" />
要关闭它,请执行以下操作:

mCam.stopPreview();
  mCam.release();

如果你用错了设备,flash light应用程序对初学者来说就不太好了,因为一些制造商不使用android提供的正常照明方式。
我建议你做一些其他的事情来学习android。

如果你想打开一个设备的LED,让它像手电筒一样工作,这就是你的伪代码所指示的,你的应用程序必须假装它是一个摄像头应用程序,因为闪光灯在摄像头API中。因此,您必须做一些事情。
1) 在清单中,您需要声明应用程序使用了
2) 在应用程序代码中,您需要使用Camera::open()实际创建Camera对象的实例
3) 您的应用程序代码将需要创建一个CameraParams对象,并将flash模式设置为on或torch(我已经看了几个月了,但其中一个可以做到)。查看文档以了解更多详细信息。在该对象中设置正确的参数后,需要在步骤2中创建的摄影机对象上调用setParameters
4) 然后您需要调用startPreview()


要关闭闪光灯,您只需在相机对象上调用StopReview()

就控制闪光灯而言,您应该看到这似乎是一个很好的答案,但对于像我这样的begginer来说,拥有所有代码(包括导入和集成此代码中的按钮)会很好。新设备是否支持它?2012年及以后?
Camera mCam = Camera.open();     
Parameters p = mCam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCam.setParameters(p);
mCam.startPreview();
mCam.stopPreview();
  mCam.release();