1

我很抱歉在所有其他类似的问题中发布另一个问题,但我尝试过的问题都没有奏效。我正在尝试打开手电筒。这是我的清单:

<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();

我做错了什么?

4

3 回答 3

1

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

于 2012-11-03T22:18:47.357 回答
0

May be this link will help you . I found this working for me.

于 2015-01-05T17:38:56.267 回答
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();

}
于 2014-03-08T15:12:17.610 回答