LED手电筒在Samsung Galaxy Nexus上不起作用

我有以下问题:我的手电筒应用程序在我的三星Galaxy S2上工作正常,但不幸的是没有在三星Galaxy Nexus(问题:手电筒忽略button – >没有反应,没有灯光,没有崩溃,没有例外)。 我读过“Galaxy Nexus上的LED手电可以通过什么API控制? 这里在计算器,但它并没有帮助我,因为我的问题仍然存在。 这是我的代码片段来控制灯光:

final Button FlashLightControl = (Button)findViewById(R.id.ledbutton); FlashLightControl.setOnClickListener(new Button.OnClickListener() { public void onClick(View arg) { if(camera != null) { //in case light is on we will turn it off parameters = camera.getParameters(); parameters.setFlashMode(Parameters.FLASH_MODE_OFF); camera.setParameters(parameters); camera.stopPreview(); camera.release(); camera = null; } else { // light is off - we turn it on camera = Camera.open(); parameters = camera.getParameters(); parameters.setFlashMode(Parameters.FLASH_MODE_TORCH); camera.setParameters(parameters); camera.startPreview(); } }}); 

有任何想法吗? 为了完整起见 – 这些是我添加到Androidmanifest.xml中的权限:

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

有人可以帮忙吗?

亲切的问候,CarpeTemporem

Solutions Collecting From Web of "LED手电筒在Samsung Galaxy Nexus上不起作用"

我有同样的问题,并通过使用具有1px宽度和1px高度的表面视图解决它

我也有同样的问题,但我试图打开一个服务的LED,所以我不能使用1×1 SurfaceView。 以下是我所做的工作。

 private void turnLEDOn() throws IOException { // In order to work, the camera needs a surface to turn on. // Here I pass it a dummy Surface Texture to make it happy. camera = Camera.open(); camera.setPreviewTexture(new SurfaceTexture(0)); camera.startPreview(); Parameters p = camera.getParameters(); p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); camera.setParameters(p); } private void turnLEDOff() { if (camera != null) { // Stopping the camera is enough to turn off the LED camera.stopPreview(); camera.release(); camera = null; } else throw new NullPointerException("Camera doesn't exist to turn off."); } 

SurfaceTexture被添加到API Level 11(Android 3.0)中,所以它只能在Honeycomb或更新的版本上工作。 对于较旧的API级别,您可以在其他答案中使用SurfaceView技巧。