mirror of
https://github.com/zxing/zxing.git
synced 2025-02-02 05:41:08 -08:00
Refactor logging of camera params
This commit is contained in:
parent
9b2ddac3cf
commit
c103e59b7e
|
@ -19,6 +19,7 @@ package com.google.zxing.client.android.camera;
|
||||||
import android.graphics.Point;
|
import android.graphics.Point;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.hardware.Camera;
|
import android.hardware.Camera;
|
||||||
|
import android.os.Build;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -28,6 +29,7 @@ import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utility methods for configuring the Android camera.
|
* Utility methods for configuring the Android camera.
|
||||||
|
@ -38,6 +40,8 @@ public final class CameraConfigurationUtils {
|
||||||
|
|
||||||
private static final String TAG = "CameraConfiguration";
|
private static final String TAG = "CameraConfiguration";
|
||||||
|
|
||||||
|
private static final Pattern SEMICOLON = Pattern.compile(";");
|
||||||
|
|
||||||
private static final int MIN_PREVIEW_PIXELS = 480 * 320; // normal screen
|
private static final int MIN_PREVIEW_PIXELS = 480 * 320; // normal screen
|
||||||
private static final float MAX_EXPOSURE_COMPENSATION = 1.5f;
|
private static final float MAX_EXPOSURE_COMPENSATION = 1.5f;
|
||||||
private static final float MIN_EXPOSURE_COMPENSATION = 0.0f;
|
private static final float MIN_EXPOSURE_COMPENSATION = 0.0f;
|
||||||
|
@ -401,4 +405,42 @@ public final class CameraConfigurationUtils {
|
||||||
return result.toString();
|
return result.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String collectStats(Camera.Parameters parameters) {
|
||||||
|
return collectStats(parameters.flatten());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String collectStats(CharSequence flattenedParams) {
|
||||||
|
StringBuilder result = new StringBuilder(1000);
|
||||||
|
|
||||||
|
result.append("BOARD=").append(Build.BOARD).append('\n');
|
||||||
|
result.append("BRAND=").append(Build.BRAND).append('\n');
|
||||||
|
result.append("CPU_ABI=").append(Build.CPU_ABI).append('\n');
|
||||||
|
result.append("DEVICE=").append(Build.DEVICE).append('\n');
|
||||||
|
result.append("DISPLAY=").append(Build.DISPLAY).append('\n');
|
||||||
|
result.append("FINGERPRINT=").append(Build.FINGERPRINT).append('\n');
|
||||||
|
result.append("HOST=").append(Build.HOST).append('\n');
|
||||||
|
result.append("ID=").append(Build.ID).append('\n');
|
||||||
|
result.append("MANUFACTURER=").append(Build.MANUFACTURER).append('\n');
|
||||||
|
result.append("MODEL=").append(Build.MODEL).append('\n');
|
||||||
|
result.append("PRODUCT=").append(Build.PRODUCT).append('\n');
|
||||||
|
result.append("TAGS=").append(Build.TAGS).append('\n');
|
||||||
|
result.append("TIME=").append(Build.TIME).append('\n');
|
||||||
|
result.append("TYPE=").append(Build.TYPE).append('\n');
|
||||||
|
result.append("USER=").append(Build.USER).append('\n');
|
||||||
|
result.append("VERSION.CODENAME=").append(Build.VERSION.CODENAME).append('\n');
|
||||||
|
result.append("VERSION.INCREMENTAL=").append(Build.VERSION.INCREMENTAL).append('\n');
|
||||||
|
result.append("VERSION.RELEASE=").append(Build.VERSION.RELEASE).append('\n');
|
||||||
|
result.append("VERSION.SDK_INT=").append(Build.VERSION.SDK_INT).append('\n');
|
||||||
|
|
||||||
|
if (flattenedParams != null) {
|
||||||
|
String[] params = SEMICOLON.split(flattenedParams);
|
||||||
|
Arrays.sort(params);
|
||||||
|
for (String param : params) {
|
||||||
|
result.append(param).append('\n');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.toString();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,11 @@
|
||||||
<artifactId>android-integration</artifactId>
|
<artifactId>android-integration</artifactId>
|
||||||
<version>${project.parent.version}</version>
|
<version>${project.parent.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.zxing</groupId>
|
||||||
|
<artifactId>android-core</artifactId>
|
||||||
|
<version>${project.parent.version}</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.google.android</groupId>
|
<groupId>com.google.android</groupId>
|
||||||
<artifactId>android</artifactId>
|
<artifactId>android</artifactId>
|
||||||
|
|
|
@ -22,7 +22,6 @@ import android.content.Intent;
|
||||||
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.hardware.Camera;
|
import android.hardware.Camera;
|
||||||
import android.os.Build;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.provider.ContactsContract;
|
import android.provider.ContactsContract;
|
||||||
|
@ -31,6 +30,8 @@ import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
|
import com.google.zxing.client.android.camera.CameraConfigurationUtils;
|
||||||
import com.google.zxing.integration.android.IntentIntegrator;
|
import com.google.zxing.integration.android.IntentIntegrator;
|
||||||
import com.google.zxing.integration.android.IntentResult;
|
import com.google.zxing.integration.android.IntentResult;
|
||||||
|
|
||||||
|
@ -40,14 +41,11 @@ import java.io.IOException;
|
||||||
import java.io.OutputStreamWriter;
|
import java.io.OutputStreamWriter;
|
||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
public final class ZXingTestActivity extends Activity {
|
public final class ZXingTestActivity extends Activity {
|
||||||
|
|
||||||
private static final String TAG = ZXingTestActivity.class.getSimpleName();
|
private static final String TAG = ZXingTestActivity.class.getSimpleName();
|
||||||
private static final String PACKAGE_NAME = ZXingTestActivity.class.getPackage().getName();
|
private static final String PACKAGE_NAME = ZXingTestActivity.class.getPackage().getName();
|
||||||
private static final Pattern SEMICOLON = Pattern.compile(";");
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
|
@ -118,7 +116,8 @@ public final class ZXingTestActivity extends Activity {
|
||||||
private final View.OnClickListener getCameraParameters = new View.OnClickListener() {
|
private final View.OnClickListener getCameraParameters = new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
String stats = collectStats();
|
String stats = CameraConfigurationUtils.collectStats(getFlattenedParams());
|
||||||
|
writeStats(stats);
|
||||||
Intent intent = new Intent(Intent.ACTION_SEND);
|
Intent intent = new Intent(Intent.ACTION_SEND);
|
||||||
intent.putExtra(Intent.EXTRA_EMAIL, "zxing-external@google.com");
|
intent.putExtra(Intent.EXTRA_EMAIL, "zxing-external@google.com");
|
||||||
intent.putExtra(Intent.EXTRA_SUBJECT, "Camera parameters report");
|
intent.putExtra(Intent.EXTRA_SUBJECT, "Camera parameters report");
|
||||||
|
@ -283,44 +282,6 @@ public final class ZXingTestActivity extends Activity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String collectStats() {
|
|
||||||
StringBuilder result = new StringBuilder(1000);
|
|
||||||
|
|
||||||
result.append("BOARD=").append(Build.BOARD).append('\n');
|
|
||||||
result.append("BRAND=").append(Build.BRAND).append('\n');
|
|
||||||
result.append("CPU_ABI=").append(Build.CPU_ABI).append('\n');
|
|
||||||
result.append("DEVICE=").append(Build.DEVICE).append('\n');
|
|
||||||
result.append("DISPLAY=").append(Build.DISPLAY).append('\n');
|
|
||||||
result.append("FINGERPRINT=").append(Build.FINGERPRINT).append('\n');
|
|
||||||
result.append("HOST=").append(Build.HOST).append('\n');
|
|
||||||
result.append("ID=").append(Build.ID).append('\n');
|
|
||||||
result.append("MANUFACTURER=").append(Build.MANUFACTURER).append('\n');
|
|
||||||
result.append("MODEL=").append(Build.MODEL).append('\n');
|
|
||||||
result.append("PRODUCT=").append(Build.PRODUCT).append('\n');
|
|
||||||
result.append("TAGS=").append(Build.TAGS).append('\n');
|
|
||||||
result.append("TIME=").append(Build.TIME).append('\n');
|
|
||||||
result.append("TYPE=").append(Build.TYPE).append('\n');
|
|
||||||
result.append("USER=").append(Build.USER).append('\n');
|
|
||||||
result.append("VERSION.CODENAME=").append(Build.VERSION.CODENAME).append('\n');
|
|
||||||
result.append("VERSION.INCREMENTAL=").append(Build.VERSION.INCREMENTAL).append('\n');
|
|
||||||
result.append("VERSION.RELEASE=").append(Build.VERSION.RELEASE).append('\n');
|
|
||||||
result.append("VERSION.SDK_INT=").append(Build.VERSION.SDK_INT).append('\n');
|
|
||||||
|
|
||||||
CharSequence flattened = getFlattenedParams();
|
|
||||||
if (flattened != null) {
|
|
||||||
String[] params = SEMICOLON.split(flattened);
|
|
||||||
Arrays.sort(params);
|
|
||||||
for (String param : params) {
|
|
||||||
result.append(param).append('\n');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String resultString = result.toString();
|
|
||||||
writeStats(resultString);
|
|
||||||
|
|
||||||
return resultString;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void writeStats(String resultString) {
|
private static void writeStats(String resultString) {
|
||||||
File cameraParamsFile = new File(Environment.getExternalStorageDirectory().getPath() + "/CameraParameters.txt");
|
File cameraParamsFile = new File(Environment.getExternalStorageDirectory().getPath() + "/CameraParameters.txt");
|
||||||
Writer out = null;
|
Writer out = null;
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
package com.google.zxing.client.glass;
|
package com.google.zxing.client.glass;
|
||||||
|
|
||||||
import android.hardware.Camera;
|
import android.hardware.Camera;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import com.google.zxing.client.android.camera.CameraConfigurationUtils;
|
import com.google.zxing.client.android.camera.CameraConfigurationUtils;
|
||||||
|
|
||||||
|
@ -25,6 +26,8 @@ import com.google.zxing.client.android.camera.CameraConfigurationUtils;
|
||||||
*/
|
*/
|
||||||
final class CameraConfigurationManager {
|
final class CameraConfigurationManager {
|
||||||
|
|
||||||
|
private static final String TAG = "CameraConfiguration";
|
||||||
|
|
||||||
static final int ZOOM = 2;
|
static final int ZOOM = 2;
|
||||||
|
|
||||||
private CameraConfigurationManager() {
|
private CameraConfigurationManager() {
|
||||||
|
@ -33,8 +36,10 @@ final class CameraConfigurationManager {
|
||||||
static void configure(Camera camera) {
|
static void configure(Camera camera) {
|
||||||
Camera.Parameters parameters = camera.getParameters();
|
Camera.Parameters parameters = camera.getParameters();
|
||||||
parameters.setPreviewSize(1280, 720);
|
parameters.setPreviewSize(1280, 720);
|
||||||
|
//parameters.setPreviewSize(1920, 1080);
|
||||||
configureAdvanced(parameters);
|
configureAdvanced(parameters);
|
||||||
camera.setParameters(parameters);
|
camera.setParameters(parameters);
|
||||||
|
//logAllParameters(parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void configureAdvanced(Camera.Parameters parameters) {
|
private static void configureAdvanced(Camera.Parameters parameters) {
|
||||||
|
@ -45,4 +50,12 @@ final class CameraConfigurationManager {
|
||||||
CameraConfigurationUtils.setZoom(parameters, ZOOM);
|
CameraConfigurationUtils.setZoom(parameters, ZOOM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void logAllParameters(Camera.Parameters parameters) {
|
||||||
|
if (Log.isLoggable(TAG, Log.INFO)) {
|
||||||
|
for (String line : CameraConfigurationUtils.collectStats(parameters).split("\n")) {
|
||||||
|
Log.i(TAG, line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue