本讲是android camera专题系列的第7讲,我们介绍android camera2 api专题的camera hardware level详解部分。
更多资源:
资源 | 描述 |
---|---|
在线课程 | |
知识星球 | 星球名称:深入浅出android camera 星球id: 17296815 |
极客笔记圈 |
为什么要判断是否支持某个feature
app需要兼容不同的平台、不同的camera硬件设备
实战经验:任何camera的功能,在使用前都必须动态判断是否支持
camera hardware level
hardware level从宏观上描述camera设备具备的能力等级。每一个等级都是在前一个等级上增加更多的功能。
legacy < limited < full < level_3
如何判断是否支持某个camera hardware level
// returns true if the device supports the required hardware level, or better.
boolean ishardwarelevelsupported(cameracharacteristics c, int requiredlevel) {
final int[] sortedhwlevels = {
cameracharacteristics.info_supported_hardware_level_legacy,
cameracharacteristics.info_supported_hardware_level_external,
cameracharacteristics.info_supported_hardware_level_limited,
cameracharacteristics.info_supported_hardware_level_full,
cameracharacteristics.info_supported_hardware_level_3
};
int devicelevel = c.get(cameracharacteristics.info_supported_hardware_level);
if (requiredlevel == devicelevel) {
return true;
}
for (int sortedlevel : sortedhwlevels) {
if (sortedlevel == requiredlevel) {
return true;
} else if (sortedlevel == devicelevel) {
return false;
}
}
return false; // should never reach here
}