簡體   English   中英

三星Galaxy RuntimeException —手電筒

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM