Java 无法在包-camera2 CameraCharacteristics.Key外部访问类

Java 无法在包-camera2 CameraCharacteristics.Key外部访问类,java,android,android-camera2,Java,Android,Android Camera2,我使用的是Camera2 api,我无法构造一个键来查找 比如说 public static CameraCharacteristics.Key<Byte> IS_SUPPORT_QCFA_SENSOR = new CameraCharacteristics.Key<>("org.codeaurora.qcamera3.quadra_cfa.is_qcfa_sensor", Byte.class); 如何构造密钥?或者解决这个问题?最

我使用的是Camera2 api,我无法构造一个键来查找 比如说

public static CameraCharacteristics.Key<Byte> IS_SUPPORT_QCFA_SENSOR =
        new CameraCharacteristics.Key<>("org.codeaurora.qcamera3.quadra_cfa.is_qcfa_sensor", Byte.class);

如何构造密钥?或者解决这个问题?

最近正在研究类似的东西,发现了这个问题。请查看以下示例:

它们使用CaptureRequest而不是CameraCharacteristics来定义键,并且在定义cameradevice后可以访问

也许值得这样尝试,但链接有更多细节

private static CaptureRequest.Key<Integer> CdsModeKey =
        new CaptureRequest.Key<>("org.codeaurora.qcamera3.CDS.cds_mode",
                Integer.class);

and

private static boolean isSupported(CaptureRequest.Builder builder,
                                   CaptureRequest.Key<?> key) {
    boolean supported = true;
    try {
        builder.get(key);
    }catch(IllegalArgumentException exception){
        supported = false;
        Log.d(TAG, "vendor tag " + key.getName() + " is not supported");
        exception.printStackTrace();
    }
    if ( supported ) {
        Log.d(TAG, "vendor tag " + key.getName() + " is supported");
    }
    return supported;
}
private static CaptureRequest.Key CdsModeKey=
新CaptureRequest.Key(“org.codearora.qcamera3.CDS.CDS_模式”,
整数类);
和
私有静态布尔值isSupported(CaptureRequest.Builder,
CaptureRequest.Key){
布尔支持=真;
试一试{
builder.get(键);
}捕获(IllegalArgumentException异常){
支持=错误;
Log.d(不支持标记“供应商标记”+key.getName()+);
异常。printStackTrace();
}
如果(支持){
Log.d(支持标记“供应商标记”+key.getName()+);
}
支持返回;
}

您的目标sdk版本是什么?对于api级别,我也有同样的问题是的,这也是一个痛苦,因为在版本28甚至更低版本上存在特定于供应商的密钥。我得到了我想工作的一部分。但我无法获取原始图像(报告为受支持)。
public static final class CameraCharacteristics.Key
private static CaptureRequest.Key<Integer> CdsModeKey =
        new CaptureRequest.Key<>("org.codeaurora.qcamera3.CDS.cds_mode",
                Integer.class);

and

private static boolean isSupported(CaptureRequest.Builder builder,
                                   CaptureRequest.Key<?> key) {
    boolean supported = true;
    try {
        builder.get(key);
    }catch(IllegalArgumentException exception){
        supported = false;
        Log.d(TAG, "vendor tag " + key.getName() + " is not supported");
        exception.printStackTrace();
    }
    if ( supported ) {
        Log.d(TAG, "vendor tag " + key.getName() + " is supported");
    }
    return supported;
}