package com.hdl.photovoltaic.ui.device;
|
|
import android.app.Activity;
|
|
|
/**
|
* 扫一扫
|
*/
|
public class ScanActivity extends Activity {
|
// private static final String TAG = ScanActivity.class.getSimpleName();
|
// private final int REQUEST_CODE = 33;
|
// private CameraManager cameraManager;
|
// private CaptureActivityHandler handler;
|
// private InactivityTimer inactivityTimer;
|
// private BeepManager beepManager;
|
// private SurfaceView scanPreview = null;
|
// private RelativeLayout scanContainer;
|
// private RelativeLayout scanCropView;
|
// private TextView tvCancel;
|
// private Rect mCropRect = null;
|
// private boolean isHasSurface = false;
|
//
|
//
|
// @Override
|
// public Handler getHandler() {
|
// return handler;
|
// }
|
//
|
// @Override
|
// public void drawViewfinder() {
|
//
|
// }
|
//
|
// @Override
|
// public CameraManager getCameraManager() {
|
// return cameraManager;
|
// }
|
//
|
// public int getRootLayoutId() {
|
// return R.layout.activity_scan;
|
// }
|
//
|
// @Override
|
// protected void onCreate(Bundle savedInstanceState) {
|
// super.onCreate(savedInstanceState);
|
// Resources resources = this.getResources();
|
// Configuration configuration = resources.getConfiguration();
|
// Locale locale = LocalManageUtil.getLocale(UserConfigManage.getInstance().getCurrentAppLanguage());
|
// // app locale 默认简体中文
|
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
// configuration.setLocale(locale);
|
// } else {
|
// configuration.locale = locale;
|
// }
|
// DisplayMetrics dm = resources.getDisplayMetrics();
|
// resources.updateConfiguration(configuration, dm);
|
//
|
// StatusBarUtil.setTranslucentForImageViewInFragment(this,
|
// 0, null);
|
// StatusBarUtil.setLightMode(this);
|
//
|
// Window window = getWindow();
|
// window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
// //设置根视图
|
// View mContentView = LayoutInflater.from(this).inflate(getRootLayoutId(), null);
|
// setContentView(mContentView);
|
// afterViewBind(mContentView, savedInstanceState);
|
//
|
// }
|
//
|
// public void afterViewBind(View rootView, Bundle savedInstanceState) {
|
// tvCancel = findViewById(R.id.tv_text_cancel);
|
// tvCancel.setOnClickListener(new View.OnClickListener() {
|
// @Override
|
// public void onClick(View v) {
|
// finish();
|
//// enterGallery();
|
// }
|
// });
|
// scanPreview = findViewById(R.id.capture_preview);
|
// scanContainer = findViewById(R.id.capture_container);
|
// scanCropView = findViewById(R.id.capture_crop_view);
|
// ImageView scanLine = findViewById(R.id.capture_scan_line);
|
// inactivityTimer = new InactivityTimer(this);
|
// beepManager = new BeepManager(this);
|
//
|
// TranslateAnimation animation = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, Animation
|
// .RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT,
|
// 0.9f);
|
// animation.setDuration(2000);
|
// animation.setRepeatCount(-1);
|
// animation.setRepeatMode(Animation.RESTART);
|
// scanLine.startAnimation(animation);
|
// ImageView imageView = findViewById(R.id.light_iv);
|
// //开启闪光灯按钮事件
|
// imageView.setOnClickListener(new View.OnClickListener() {
|
// @Override
|
// public void onClick(View v) {
|
// v.setSelected(!v.isSelected());
|
// if (v.isSelected()) {
|
// imageView.setImageDrawable(AppCompatResources.getDrawable(ScanActivity.this, com.zxing.R.drawable.fast_scan_light_open));
|
// } else {
|
// imageView.setImageDrawable(AppCompatResources.getDrawable(ScanActivity.this, com.zxing.R.drawable.fast_scan_light_close));
|
// }
|
// flashLightOnOrOff();
|
//
|
// }
|
// });
|
// }
|
//
|
// public void enterGallery() {
|
// // 进入图库
|
// Intent pickIntent = new Intent(Intent.ACTION_PICK,
|
// MediaStore.Images.Media.EXTERNAL_CONTENT_URI);//启动系统相册
|
// pickIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
|
// startActivityForResult(pickIntent, REQUEST_CODE);
|
//
|
// }
|
//
|
// @Override
|
// protected void onResume() {
|
// super.onResume();
|
// cameraManager = new CameraManager(getApplication());
|
// handler = null;
|
// if (isHasSurface) {
|
// initCamera(scanPreview.getHolder());
|
// } else {
|
// scanPreview.getHolder().addCallback(this);
|
// }
|
//
|
// inactivityTimer.onResume();
|
// }
|
//
|
// @Override
|
// protected void onPause() {
|
// if (handler != null) {
|
// handler.quitSynchronously();
|
// handler = null;
|
// }
|
// inactivityTimer.onPause();
|
// beepManager.close();
|
// cameraManager.closeDriver();
|
// if (!isHasSurface) {
|
// scanPreview.getHolder().removeCallback(this);
|
// }
|
// super.onPause();
|
// }
|
//
|
// @Override
|
// protected void onDestroy() {
|
// inactivityTimer.shutdown();
|
// super.onDestroy();
|
// }
|
//
|
// @Override
|
// public void surfaceCreated(SurfaceHolder holder) {
|
// if (holder == null) {
|
// Log.d(TAG, "*** WARNING *** surfaceCreated() gave us a null surface!");
|
// }
|
// if (!isHasSurface) {
|
// isHasSurface = true;
|
// initCamera(holder);
|
// }
|
// }
|
//
|
// @Override
|
// public void surfaceDestroyed(SurfaceHolder holder) {
|
// isHasSurface = false;
|
// }
|
//
|
// @Override
|
// public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
|
//
|
// }
|
//
|
// /**
|
// * A valid barcode has been found, so give an indication of success and show
|
// * the results.
|
// *
|
// * @param rawResult The contents of the barcode.
|
// * @param bundle The extras
|
// */
|
// @Override
|
// public void handleDecode(Result rawResult, Bundle bundle) {
|
// inactivityTimer.onActivity();
|
// beepManager.playBeepSoundAndVibrate();
|
// doProcess(rawResult.getText());
|
// restartPreviewAfterDelay(3000);
|
// }
|
//
|
// private void initCamera(SurfaceHolder surfaceHolder) {
|
// if (surfaceHolder == null) {
|
// throw new IllegalStateException("No SurfaceHolder provided");
|
// }
|
// if (cameraManager.isOpen()) {
|
// Log.w(TAG, "initCamera() while already open -- late SurfaceView callback?");
|
// return;
|
// }
|
// try {
|
// cameraManager.openDriver(surfaceHolder);
|
// // Creating the handler starts the preview, which can also throw a
|
// // RuntimeException.
|
// if (handler == null) {
|
// handler = new CaptureActivityHandler(this, cameraManager, DecodeThread.ALL_MODE);
|
// }
|
//
|
// initCrop();
|
// } catch (IOException ioe) {
|
// Log.w(TAG, ioe);
|
// Toast.makeText(this, R.string.capture_no_camera, Toast.LENGTH_SHORT).show();
|
// finish();
|
// } catch (RuntimeException e) {
|
// Log.w(TAG, "Unexpected error initializing camera", e);
|
// Toast.makeText(this, R.string.capture_no_camera, Toast.LENGTH_SHORT).show();
|
// finish();
|
// }
|
// }
|
//
|
// public void restartPreviewAfterDelay(long delayMS) {
|
// if (handler != null) {
|
// handler.sendEmptyMessageDelayed(com.zxing.R.id.restart_preview, delayMS);
|
// }
|
// }
|
//
|
// @Override
|
// public Rect getCropRect() {
|
// return mCropRect;
|
// }
|
//
|
// /**
|
// * 初始化截取的矩形区域
|
// */
|
// private void initCrop() {
|
// int cameraWidth = cameraManager.getCameraResolution().y;
|
// int cameraHeight = cameraManager.getCameraResolution().x;
|
//
|
// /** 获取布局中扫描框的位置信息 */
|
// int[] location = new int[2];
|
// scanCropView.getLocationInWindow(location);
|
//
|
// int cropLeft = location[0];
|
// int cropTop = location[1] - getStatusBarHeight();
|
//
|
// int cropWidth = scanCropView.getWidth();
|
// int cropHeight = scanCropView.getHeight();
|
//
|
// /** 获取布局容器的宽高 */
|
// int containerWidth = scanContainer.getWidth();
|
// int containerHeight = scanContainer.getHeight();
|
//
|
// /** 计算最终截取的矩形的左上角顶点x坐标 */
|
// int x = cropLeft * cameraWidth / containerWidth;
|
// /** 计算最终截取的矩形的左上角顶点y坐标 */
|
// int y = cropTop * cameraHeight / containerHeight;
|
//
|
// /** 计算最终截取的矩形的宽度 */
|
// int width = cropWidth * cameraWidth / containerWidth;
|
// /** 计算最终截取的矩形的高度 */
|
// int height = cropHeight * cameraHeight / containerHeight;
|
//
|
// /** 生成最终的截取的矩形 */
|
// mCropRect = new Rect(x, y, width + x, height + y);
|
// }
|
//
|
// private int getStatusBarHeight() {
|
// try {
|
// Class<?> c = Class.forName("com.android.internal.R$dimen");
|
// Object obj = c.newInstance();
|
// Field field = c.getField("status_bar_height");
|
// int x = Integer.parseInt(field.get(obj).toString());
|
// return getResources().getDimensionPixelSize(x);
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// }
|
// return 0;
|
// }
|
//
|
// private void doProcess(String result) {
|
// /*if (!DeviceHelper.getNetworkState()) {
|
// Toast.makeText(this, R.string.capture_no_network, Toast.LENGTH_SHORT).show();
|
// return;
|
// }*/
|
//
|
// if (TextUtils.isEmpty(result)) {
|
// Toast.makeText(this, R.string.capture_no_result, Toast.LENGTH_SHORT).show();
|
// } else {
|
// if (result.startsWith("https://") || result.startsWith("http://")) {
|
// Intent intent = new Intent();
|
// intent.putExtra("data", result);
|
// setResult(RESULT_OK, intent);
|
// finish();
|
// //EventBus事件分发
|
// HdlCommonLogic.getInstance().postEventBusSticky(
|
// HDLUniMP.UNI_EVENT_REPLY_HOME_ADD,
|
// HDLUniMP.UNI_EVENT_REPLY_HOME_ADD,
|
// result);
|
// } else {
|
// Toast.makeText(this, R.string.not_delivery_qr_code, Toast.LENGTH_SHORT).show();
|
// }
|
//
|
// }
|
// }
|
//
|
// @Override
|
// public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
// super.onActivityResult(requestCode, resultCode, data);
|
// if (requestCode == REQUEST_CODE && resultCode == RESULT_OK && data != null) {
|
// Uri originalUri = data.getData();
|
// if (originalUri != null) {
|
// String path = originalUri.getPath();
|
// String[] proj = {MediaStore.Images.Media.DATA};
|
// Cursor cursor = getContentResolver().query(originalUri, proj, null, null, null);
|
// if (cursor != null) {
|
// int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
|
// cursor.moveToFirst();
|
// path = cursor.getString(column_index);
|
// cursor.close();
|
// }
|
//
|
// if (!TextUtils.isEmpty(path)) {
|
// handleQRCodeFormPhoto(path);
|
// } else {
|
//// Toast.makeText(this, R.string.pic_error, Toast.LENGTH_SHORT).show();
|
// }
|
// }
|
// }
|
// }
|
//
|
// /**
|
// * 解析图库选择的二维码
|
// */
|
// public void handleQRCodeFormPhoto(final String filePath) {
|
// Thread dealThread = new Thread(new Runnable() {
|
// @Override
|
// public void run() {
|
// Hashtable<DecodeHintType, String> hints = new Hashtable<>();
|
// hints.put(DecodeHintType.CHARACTER_SET, "utf-8");
|
// RGBLuminanceSource source = null;
|
// try {
|
// source = new RGBLuminanceSource(filePath);
|
// } catch (FileNotFoundException e) {
|
// e.printStackTrace();
|
// }
|
// BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(source));
|
// QRCodeReader reader = new QRCodeReader();
|
// Result result;
|
// try {
|
// result = reader.decode(binaryBitmap, hints);
|
// if (!TextUtils.isEmpty(result.getText())) {
|
// dealUIInfo(result.getText());
|
// } else {
|
// dealUIInfo(null);
|
// }
|
// } catch (NotFoundException | ChecksumException | FormatException e) {
|
// dealUIInfo(null);
|
// e.printStackTrace();
|
// }
|
// }
|
// });
|
// dealThread.start();
|
// }
|
//
|
// private void dealUIInfo(final Object progressInfo) {
|
// runOnUiThread(new Runnable() {
|
// @Override
|
// public void run() {
|
// if (progressInfo == null) {
|
// Toast.makeText(ScanActivity.this, R.string.capture_no_result2, Toast.LENGTH_SHORT).show();
|
// } else {
|
// doProcess(progressInfo.toString());
|
// }
|
// }
|
// });
|
// }
|
//
|
// /**
|
// * 闪光灯开启或者关闭
|
// */
|
// private void flashLightOnOrOff() {
|
////
|
// android.hardware.Camera camera = cameraManager.getCamera();
|
// if (camera == null) {
|
// return;
|
// }
|
// android.hardware.Camera.Parameters parameters = camera.getParameters();
|
//// 判断闪光灯当前状态
|
// if (Camera.Parameters.FLASH_MODE_OFF.equals(parameters.getFlashMode())) {
|
// onLight(camera, parameters);
|
// } else if (Camera.Parameters.FLASH_MODE_TORCH.equals(parameters.getFlashMode())) {
|
// offLight(camera, parameters);
|
// }
|
// }
|
//
|
// private void onLight(android.hardware.Camera camera, Camera.Parameters parameters) {
|
// parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
|
// camera.setParameters(parameters);
|
// }
|
//
|
// private void offLight(android.hardware.Camera camera, Camera.Parameters parameters) {
|
// parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
|
// camera.setParameters(parameters);
|
// }
|
|
}
|