如何解决我如何使用找不到的钥匙,却被枚举的钥匙? Android Studio
在我的示例中,我正在使用camera2 API。我可以使用CameraCharacteristics.CONTROL_AE_LOCK_AVAILABLE,但是CameraCharacteristics.MEDIATEK_FACE_FEATURE_AVAILABLE_GESTURE_MODES呢?显然,Android Studio会说找不到符号变量。
但是,以下代码将此键枚举为com.mediatek.facefeature.availablegesturemodes。如何使用不属于Android Studio等标准列表的枚举键?
for (CameraCharacteristics.Key <?> key : characteristics.getKeys()) {
for (CaptureRequest.Key<?> key : myrequest.getKeys()) {
mystring.append(key.getName() + "\n");
}
解决方法
好吧,对于那个特定的Key,您在调用getKeys并进行迭代时已经有了一个,因此您只需查找具有所需名称的一个,然后将其与CameraCharacteristics.get(Key)
或CaptureRequest.Builder.set(Key,value)
一起使用即可。
您还可以直接构造Key对象-constructors从API 29开始是公共的。您需要Key名称,例如com.mediatek.facefeature.availablegesturemodes
,还需要知道key的类型。 。因此,对名称进行迭代和匹配以找到Key可能更简单,并且也可以在较早的API上运行。
当然,这些自定义键仅在某些设备上有效,因此您必须使代码健壮起来以防丢失。没有保证,除非特定的OEM表示密钥将是可靠的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。