[英]RuntimeException with Samsung Galaxy — Flashlight
我完全不知道如何實現這一目標。 它在我的Razr上可以正常工作,但在許多三星設備上卻無法使用。 我有一個SurfaceView運行相機預覽。 我包括了一個使用手電筒的按鈕。 在我插入try塊的地方拋出了異常:
if (hasFlash()) {
btnLight = (ImageButton) findViewById(R.id.btn_light);
btnLight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Parameters p = camera.getParameters();
if (p.getSupportedFlashModes() != null) {
if (p.getSupportedFlashModes().contains(
Parameters.FLASH_MODE_TORCH)) {
if (isLightOn) {
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
btnLight.setImageResource(R.drawable.light_on);
isLightOn = false;
} else {
try {
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
btnLight.setImageResource(R.drawable.light_off);
isLightOn = true;
} catch (RuntimeException e){
// I don't know how to make this stupid thing work for all phones
}
}
}
}
}
});
在Android 文檔中,您可以閱讀:
public void setParameters (Camera.Parameters params)
Throws
RuntimeException if any parameter is invalid or not supported.
這意味着您正在使用三星設備不支持的相機參數( FLASH_MODE
),因此在此型號上不起作用。 我認為它可能根本沒有內置閃光燈。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.