在我的示例中,我使用的是camera2api。我可以使用cameracharacteristics.control\u ae\u lock\u available,但是cameracharacteristics.mediatek\u face\u feature\u available\u signature\u modes如何?显然android工作室会说找不到符号变量。
但是下面的代码将此密钥枚举为com.mediatek.facefeature.availablegesturemodes。如何使用不属于androidstudio等标准列表的枚举键?
for (CameraCharacteristics.Key <?> key : characteristics.getKeys()) {
for (CaptureRequest.Key<?> key : myrequest.getKeys()) {
mystring.append(key.getName() + "\n");
}
1条答案
按热度按时间c6ubokkw1#
好吧,对于那个特定的键,已经有一个来自对getkeys的调用和迭代,所以您可以只查找一个具有您想要的名称的键,然后将其用于
CameraCharacteristics.get(Key)
或者CaptureRequest.Builder.set(Key, value)
.您还可以直接构造key对象—构造函数在api 29中是公共的。你需要密钥名,比如
com.mediatek.facefeature.availablegesturemodes
,您还需要知道密钥的类型。因此,在名称上迭代和匹配以查找键可能更简单,而且也适用于早期的api。当然,这些自定义密钥只能在某些设备上工作,因此您必须使代码对丢失的密钥保持健壮。没有保证,除非一个特定的原始设备制造商说,关键是要可靠。