4

我必须遵循代码,我只想在我的 Galaxy Nexus(4.0.2) 中打开手电筒,但它没有这样做。

public class welcome extends Activity {

//MediaPlayer player;
/** Called when the activity is first created. */
@Override

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.welcome);

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



}
}

我的清单文件:

<uses-sdk android:minSdkVersion="12" />
       <uses-permission android:name="android.permission.CAMERA" />
 <uses-feature android:name="android.hardware.camera" />

请问是我的编码错误还是android版本问题?谢谢

4

3 回答 3

5

如果没有附加的surfaceView 和surfaceHolder,galaxy nexus 就无法使用闪光灯。我自己有一个 Nexus,在附加预览视图后它工作了。由于您不想看到相机在手电筒应用程序中看到的内容,因此只需将其设为 1x1 像素。

资料来源:LED 手电筒不适用于三星 Galaxy Nexus

于 2012-10-13T19:26:04.080 回答
0

使用表面视图连接相机,因为某些设备需要表面视图。我相信这将 是一个链接!为你

于 2014-03-11T07:50:14.433 回答
0

您是否尝试过这里的代码: http ://android-er.blogspot.co.uk/2011/02/control-flash-light-function-as-torch.html

它绝对适用于运行 Cyanogenmod 7 的根深蒂固的 Desire 和我的 ICS rom (4.0.3)。也许尝试运行它并查看它是否有效,然后从那里继续?

它还包括检查是否可以找到相机,然后打开相机。似乎不需要 StartPreview()。

事件的顺序似乎不同:

1:如果有摄像头,打开摄像头 2:设置参数 3:parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
4:camera.setParameters(参数);

于 2012-08-21T14:39:09.997 回答