无法在Galaxy Nexus中使用手电筒

时间:2012-05-24 04:44:31

标签: android android-camera

我必须关注代码,我只是想在我的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版本问题? 感谢

3 个答案:

答案 0 :(得分:5)

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

来源:LED Flashlight does not work on Samsung Galaxy Nexus

答案 1 :(得分:0)

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

对于我来说,它肯定适用于运行Cyanogenmod 7和ICS rom(4.0.3)的根源Desire。也许尝试运行它,看它是否有效,然后从那里继续?

它还包括检查是否可以找到相机,然后打开相机。似乎没有必要使用StartPreview()。

事件的顺序似乎不同:

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

答案 2 :(得分:0)

使用表面视图附加相机,因为某些设备需要表面视图。我相信这会奏效 a link!为你