我必须关注代码,我只是想在我的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版本问题? 感谢
答案 0 :(得分:5)
如果没有附加的surfaceView和surfaceHolder,则galaxy nexus无法使用闪光灯。我自己有一个Nexus,在附加了预览视图之后就可以了。由于您不想看到相机在手电筒应用中看到的内容,只需将其设为1x1像素。
答案 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!为你