我如何使用找不到的钥匙,却被枚举的钥匙? 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表示密钥将是可靠的。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...