如何使用相机闪光灯作为火炬? [英] How to use the camera Flash light as torch?
本文介绍了如何使用相机闪光灯作为火炬?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下是我的code,使手电筒在Android系统。举杯消息,它返回以下参数:自动,开,关,火炬。参数设置为FLASH_MODE_TORCH后,火炬是不是能够给我。我的清单权限是:
<使用许可权的android:NAME =android.permission.CAMERA>< /使用许可权>
<允许机器人:名字=android.permission.FLASHLIGHT
机器人:permissionGroup =android.permission-group.HARDWARE_CONTROLS
安卓的ProtectionLevel =正常/>
<使用特征的android:NAME =android.hardware.camera>< /使用特征>
我的code:
公共类CameraFlashActivity延伸活动{
/ **当第一次创建活动调用。 * /
公共摄像头mCamera;
参数cameraParameters;
@覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main);
布尔相机preSNT = this.getPackageManager()hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
如果(相机preSNT == true)而
{
Toast.makeText(getApplicationContext(),Flash是那里,10).show();
如果(mCamera == NULL)
{ 尝试{
mCamera = Camera.open();
mCamera.start preVIEW();
Toast.makeText(getApplicationContext()相机是present,10).show();
}赶上(例外五){
Log.i(CameraFlashActivity,Camera.open()失败:+ e.getMessage());
}
如果(mCamera == NULL)
{
Toast.makeText(getApplicationContext(),Camera对象为空,10).show();
}
其他
{
cameraParameters = mCamera.getParameters();
如果(cameraParameters == NULL)
{
Toast.makeText(getApplicationContext(),无摄像头参数,10).show();
}
其他
{
清单<串GT; flashmodes = cameraParameters.getSupportedFlashModes();
串supportedFlashModes = cameraParameters.getFlashMode();
Toast.makeText(getApplicationContext(),flashmodes.toString(),10).show();
Toast.makeText(getApplicationContext(),supportedFlashModes,10).show();
cameraParameters.setFlashMode(Parameters.FLASH_MODE_ON);
mCamera.setParameters(cameraParameters);
串supportFlashModes = cameraParameters.getFlashMode();
Toast.makeText(getApplicationContext(),supportFlashModes,10).show();
Toast.makeText .show()(getApplicationContext(),10相机参数的闪光灯设置); }
}
}
其他
{ }
}
其他
{
Toast.makeText(getApplicationContext(),Flash是不是有,10).show();
}
}
公共无效的onDestroy(){
super.onDestroy();
如果(mCamera!= NULL){
cameraParameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(cameraParameters);
mCamera.stop preVIEW();
mCamera.release();
}
Log.i(cameraFlashLight,的onDestroy);
}
}
解决方案
使用code序列:
mCamera = Camera.open();
cameraParameters = mCamera.getParameters();
cameraParameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(参数);
mCamera.start preVIEW();
The following is my code to enable Flashlight in Android. In a Toast message it returned the following parameters: auto, on, off, torch. After setting the parameters to FLASH_MODE_TORCH, the torch is not enabling for me. My Manifest permissions are:
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
<permission android:name="android.permission.FLASHLIGHT"
android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
android:protectionLevel="normal"/>
<uses-feature android:name="android.hardware.camera"></uses-feature>
My Code:
public class CameraFlashActivity extends Activity {
/** Called when the activity is first created. */
public Camera mCamera;
Parameters cameraParameters;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
boolean cameraPresnt = this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
if( cameraPresnt == true)
{
Toast.makeText(getApplicationContext(),"Flash is there",10).show();
if(mCamera==null)
{
try {
mCamera = Camera.open();
mCamera.startPreview();
Toast.makeText(getApplicationContext(),"Camera is present",10).show();
} catch (Exception e) {
Log.i("CameraFlashActivity", "Camera.open() failed: " + e.getMessage());
}
if(mCamera==null)
{
Toast.makeText(getApplicationContext(),"Camera object is null",10).show();
}
else
{
cameraParameters = mCamera.getParameters();
if(cameraParameters==null)
{
Toast.makeText(getApplicationContext(),"No camera parameters",10).show();
}
else
{
List<String> flashmodes = cameraParameters.getSupportedFlashModes();
String supportedFlashModes = cameraParameters.getFlashMode();
Toast.makeText(getApplicationContext(),flashmodes.toString(),10).show();
Toast.makeText(getApplicationContext(),supportedFlashModes,10).show();
cameraParameters.setFlashMode(Parameters.FLASH_MODE_ON);
mCamera.setParameters(cameraParameters);
String supportFlashModes = cameraParameters.getFlashMode();
Toast.makeText(getApplicationContext(),supportFlashModes,10).show();
Toast.makeText(getApplicationContext(),"Camera parameters are set on flash light",10).show();
}
}
}
else
{
}
}
else
{
Toast.makeText(getApplicationContext(),"Flash is not there",10).show();
}
}
public void onDestroy() {
super.onDestroy();
if (mCamera != null) {
cameraParameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(cameraParameters);
mCamera.stopPreview();
mCamera.release();
}
Log.i("cameraFlashLight", "onDestroy");
}
}
解决方案
Use this sequence of code:
mCamera = Camera.open();
cameraParameters = mCamera.getParameters();
cameraParameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(parameters);
mCamera.startPreview();
这篇关于如何使用相机闪光灯作为火炬?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文