打开手电筒

时间:2012-11-03 22:09:50

标签: android camera toggle flashlight

我很抱歉在所有其他类似的问题中发布了另一个问题,但我尝试过的问题都没有。我正试图打开闪光灯。这是我的清单:

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

<uses-permission android:name="android.permission.FLASHLIGHT"/>

<uses-feature android:name="android.hardware.camera"
    android:required="false" />

<uses-feature android:name="android.hardware.camera.autofocus"
    android:required="false" />

<uses-feature android:name="android.hardware.camera.flash"
    android:required="false" />

这是我打开手电筒的代码:

    Camera cam = Camera.open();     
    Parameters p = cam.getParameters();
    p.setFlashMode(Parameters.FLASH_MODE_TORCH);
    cam.setParameters(p);
    cam.startPreview();

我做错了什么?

3 个答案:

答案 0 :(得分:1)

您确定您的设备可以处理FLASH_MODE_TORCH吗? camera.getParameters()getSupportedFlashModes(); 检查FLASH_MODE_TORCH是否在此调用返回的列表中。

答案 1 :(得分:0)

我使用了以下清单:

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />
<uses-sdk android:minSdkVersion="14"/>

注意在清单的右侧添加它! 在这里看看模型: http://developer.android.com/guide/topics/manifest/manifest-intro.html

打开闪光灯的代码如下所示:

public void myFlash (View view) {

    Context context = this;

    context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);

    Camera cam = Camera.open();
    Camera.Parameters p = cam.getParameters();
    p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
    cam.setParameters(p);
    cam.startPreview();

    //cam.stopPreview();
    //cam.release();

}

答案 2 :(得分:0)

可能是这个link会帮助你。我发现这对我有用。