CyanogenMod显然提供了“手动”对焦模式,无需使用Camera2 API,但如何控制它呢?
我通过调用:
在OnePlus One上发现了这种模式camera.getParameters().getSupportedFocusModes()
返回的列表包含一个名为"manual"
的附加模式,该模式未在标准Android API Reference中记录。我可以设置此模式[例如使用setFocusMode("manual")
],但接着是什么?
CyanogenMod Camera API source表示该模式名为FOCUS_MODE_MANUAL_POSITION
,它还提供以下内容:
private static final int MANUAL_FOCUS_POS_TYPE_INDEX = 0;
private static final int MANUAL_FOCUS_POS_TYPE_DAC = 1;
/** @hide
* Set focus position.
*
* @param pos user setting of focus position.
*/
public void setFocusPosition(int type, int pos) {
set(KEY_QC_MANUAL_FOCUS_POS_TYPE, Integer.toString(type));
set(KEY_QC_MANUAL_FOCUS_POSITION, Integer.toString(pos));
}
/** @hide
* Gets the current focus position.
*
* @return current focus position
*/
public String getCurrentFocusPosition() {
return get(KEY_QC_MANUAL_FOCUS_POSITION);
}
但是MANUAL_FOCUS_POS_TYPE_
常量是私有的,方法标记为@hide
。
所以我的问题是:如何控制这种“手动”对焦模式?