我正在練習構建Android應用程序,並開始使用手電筒將是一個很好的初學者步驟。在我的代碼被炸燬數次後,我的應用程序穩定在不再強制關閉的位置。火炬/手電筒無法啓動Android應用程序
但是,LED照相機閃光燈不能打開,就像我希望它應該。
任何有關我在做什麼錯誤的見解將是最有幫助的。
public class PMATorch extends Activity {
private Camera camera;
private Button button;
private Camera.Parameters param;
private boolean torchStat = false;
public Camera getCameraInstance() {
Camera c = null;
try {
c = camera.open();
} catch (Exception e) {
}
return c;
}
private void torchOn(){
if (camera != null){
Parameters param = camera.getParameters();
param.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(param);
camera.startPreview();
torchStat = true;
}
}
private void torchOff(){
if (camera != null){
Parameters param = camera.getParameters();
param.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(param);
camera.stopPreview();
torchStat = false;
}
}
@Override
protected void onDestroy() {
if (camera != null) {
camera.release();
camera = null;
}
super.onDestroy();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pmatorch);
camera = getCameraInstance();
button = (Button) findViewById(R.id.torchOnOff);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (torchStat = false) {
torchOn();
} else {
torchOff();
}
}
});
}
}
編輯:我有在AndroidManifest.xml中設置的權限和功能。
編輯2:更新了代碼,我剛剛嘗試運行。
我沒注意到那個。 :(這可能是OP的正確答案,但我認爲我的答案也提供了一些信息,所以我會保持在那裏,除非它被證明是錯誤的。 – Keale 2014-10-29 00:03:42
@Keale可能,我實際上不知道如何正確使用相機:D – zapl 2014-10-29 00:04:56
好的,如果你分析他的代碼,你會看到'getCameraInstance()'永遠不會被調用,所以相機將永遠是null。然後在他的torchOn()方法中檢查相機是否存在,所以如果相機爲空,他的空檢查將工作,所以燈不會打開。你必須是一個非常有經驗的程序員注意到> _ < – Keale 2014-10-29 00:07:07