有没有一种程序化的方法来检测相机是否有光学变焦?

时间:2013-09-17 17:24:58

标签: android android-camera

似乎有一些带有光学变焦的Android设备,例如

  • Samsung S4 Zoom(OS 4.2)
  • Altek A14& A16(OS 2.3.5)

有没有办法以编程方式检测到这个?

由于相机通常需要几秒钟的时间进行初始化,因此在我的应用程序中有一些流程可以让我启动相机以预期用户即将使用它(因此当应用程序实际按下我的应用程序时应用感觉更快相机按钮)。如果相机具有光学变焦,那么我不想这样做,因为镜头滑出并使用户烦恼。

如果我必须将这些设备列入黑名单,是否有人知道所有带有光学变焦的Android设备的列表,最好是Build.MANUFACTURERBuild.PRODUCT字符串?

如果它有帮助,这里是我最近购买的S4 Zoom的Camera.Parameters:

{preferred-preview-size-for-video=704x528, factory-af-led-lv-limit=-1,-1, zoom=0, factory-af-scan-limit=-1,-1, max-num-detected-faces-hw=0, continuous-mode=off, zoom-supported=true, metering=center, whitebalance=auto, scene-mode=auto, jpeg-quality=1, factory-testno=0, factory-af-diff-check=-1,-1, preview-format-values=yuv420sp,yuv420p, best-mode=off, red-eye-fix=fail, jpeg-thumbnail-quality=100, preview-format=yuv420sp, low-light-mode=off, zoom-action=zoom-stop, face-detection=off, video-size-values=1920x1080,1280x720,800x450,768x512,640x480,320x240,176x144, factory-zoom-slope-check-data=-1,-1, preview-size=960x540, focal-length=4.300000, flash-charging=0, factory-cap-range=-1,-1, factory-iris-range=-1,-1, flash-mode-values=off,auto,red-eye,on,fillin,slow,red-eye-fix, preview-frame-rate-values=30,15, factory-af-scan-range=-1,-1, max-num-metering-areas=0, preview-frame-rate=30, focus-mode-values=auto,infinity,macro,fixed,face-detection,continuous,continuous-picture,continuous-video,manual,multi,touch,object-tracking, jpeg-thumbnail-width=224, video-size=0x0, scene-mode-values=auto,portrait,landscape,night,beach,snow,sunset,fireworks,sports,party,candlelight,dusk-dawn,fall-color,back-light,text, preview-fps-range-values=(7000,30000), jpeg-thumbnail-size-values=224x126,160x120,192x128,0x0, zoom-ratios=100,120,140,160,180,220,310,420,560,790,1000, preview-size-values=960x540,768x512,704x576,704x528,640x524,640x480,320x240, smart-scene-detection=0, factory-zoom-range-check-data=-1,-1, factory-af-led-range=-1,-1,-1,-1, picture-size-values=4608x2592,3264x2448,4608x3456,4608x3072,4096x2304,3960x2640,3648x2736,2592x1944,2304x1728,1984x1488,1920x1080,1024x768,960x720,640x480, preview-fps-range=7000,30000, auto-whitebalance-lock=false, min-exposure-compensation=-6, antibanding=off, max-num-focus-areas=1, vertical-view-angle=46.3, factory-wb-value=-1,-1,-1,-1, zoom-ring=-1, horizontal-view-angle=67, video-stabilization-supported=false, jpeg-thumbnail-height=126, continuous-fps=, focus-mode=auto, factory-sc-speedtime=-1,-1, factory-gyro-range-data=-1,-1,-1,-1, auto-whitebalance-lock-supported=true, video-frame-format=yuv420sp, max-num-detected-faces-sw=0, picture-format-values=jpeg, wb-k=-1, max-exposure-compensation=6, factory-ois-range-data=-1,-1,-1,-1,-1,-1,-1, focus-areas=(0,0,0,0,0), exposure-compensation=0, exposure-compensation-step=0.33, flash-mode=off, flash-standby=off, auto-exposure-lock=false, wb-custom=-1,-1, effect-values=none,mono,negative,sepia,antique,point-blue,point-red,point-yellow,warm,cold, factory-punt-range-data=-1,-1,-1, factory-vib-range-data=-1,-1,-1,-1,-1,-1, picture-size=4608x2592, max-zoom=10, factory-gain-liveview-range=-1,-1, effect=none, blink=fail, whitebalance-values=auto,fluorescent-h,fluorescent-l,daylight,cloudy-daylight,custom,temperature,incandescent,prohibition,horizon,ledlight, picture-format=jpeg, focus-distances=0.15,1.20,Infinity, factory-flash-range=-1,-1, raw-save=0, auto-exposure-lock-supported=true, curr_zoom_level=0, hdr-mode=0, antibanding-values=60hz,off}

仅供参考,它将Build.PRODUCT报告为mproject3gub

2 个答案:

答案 0 :(得分:4)

  

有没有办法以编程方式检测到它?

不通过公共API,例如Camera.Parameters

理论上,所有这些制造商都可能对某些未记录的API进行了标准化,例如Camera.Parameters中的一些未记录的值。从理论上讲,我可能会自发地重新生长我失去的头发。我不会指望其中任何一个都是真的。

  

有没有人知道所有带有光学变焦的Android设备的列表,最好是他们的Build.MANUFACTURER和Build.PRODUCT字符串

我怀疑是否有一个,考虑到我所知道的光学变焦设备(三星Galaxy相机)的报告Build.PRODUCT值(gd1wifiue)总共显示在五页上截至撰写本文时,谷歌已在整个互联网上编制索引,并包括此页面。请注意,我还没有亲自使用Galaxy Camera,因此报告给我的值可能不正确。

答案 1 :(得分:-1)

此方法可能会有所帮助: Camera.Parameters.isZoomSupported()

  

public boolean isZoomSupported()

     

如果支持缩放,则返回true。应用程序应在使用其他缩放方法之前调用它。

(在API级别8中添加)

修改

此方法包括数码和光学变焦