将所有 Camera2 CaptureResults 写入文件

Writing all Camera2 CaptureResults into a file

我正在尝试将使用 Camera2 API 在 Android 上采集的所有参数导出到文本文件中。我发现它们都包含在 CaptureCallback 中,但我只是不知道如何将它们全部解析并写入 file

private CameraCaptureSession.CaptureCallback mCaptureCallback  = new CameraCaptureSession.CaptureCallback()
{

    private void process(CaptureResult result)
    {
        //parse and write as txt all available result keys and values
    }
}

这可能是一件容易的事。

这里有一段代码可以完成这项工作。我打开一个文件,解析所有键并将值写入其中:

File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
                                Environment.DIRECTORY_PICTURES), "MyApp");
File outputfile = new File(mediaStorageDir, "Camera_parameters.txt");
if (! mediaStorageDir.exists()){
    if (! mediaStorageDir.mkdirs()){
        return;
    }
}
try {
    FileOutputStream m_outputstream = new FileOutputStream(outputfile);
    OutputStreamWriter m_stream = new OutputStreamWriter(m_outputstream);
    List<CaptureResult.Key<?>> keys = result.getKeys();
    for (CaptureResult.Key<?> key : keys) {
        Log.d(TAG, key + " has value " + result.get(key));
        m_stream.write(key + "\t" + result.get(key) + "\n");
    }
    m_stream.close();
}
catch (IOException e)
{
    Log.e("Exception", "File write failed: " + e.toString());
}