zoukankan      html  css  js  c++  java
  • Zxing兼容2.3等低版本

    需要修改的地方

    1.InactivityTimer.java

    public synchronized void onActivity() {

       ...

      if (Build.VERSION.SDK_INT < 11) {
            inactivityTask.execute();
        }else{
            inactivityTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        }

    }

    2.AutoFocusManager.java

    public synchronized void onAutoFocus(boolean success, Camera theCamera) {
            if (active) {
                outstandingTask = new AutoFocusTask();
                if (Build.VERSION.SDK_INT < 11) {
                    outstandingTask.execute();
                } else {
                    outstandingTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
                }
            }
        }

    3.CameraManager.java (报W/CaptureActivity(24188): java.io.IOException: setPreviewDisplay failed异常,需要给SurfaceHolder设置type,   surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

      @Override
        protected void onResume() {

        ...

       SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view);
            SurfaceHolder surfaceHolder = surfaceView.getHolder();
            if (Build.VERSION.SDK_INT < 11) {
                surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
            }

      }


      @Override
        public void surfaceCreated(SurfaceHolder holder) {
            if (holder == null) {
                Log.e(TAG, "*** WARNING *** surfaceCreated() gave us a null surface!");
            }else{
                if (Build.VERSION.SDK_INT < 11) {
                    holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
                }
            }
            if (!hasSurface) {
                hasSurface = true;
                initCamera(holder);
            }
        }

    4.CameraConfigurationManager.java (报 java.lang.NoSuchMethodError: android.view.Display.getSize)

    void initFromCameraParameters(Camera camera) {
            Camera.Parameters parameters = camera.getParameters();
            WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
            Display display = manager.getDefaultDisplay();
            Point theScreenResolution = new Point();
            if (Build.VERSION.SDK_INT < 13) {
                theScreenResolution.x = display.getWidth();
                theScreenResolution.y = display.getHeight();
            } else {
                display.getSize(theScreenResolution);
            }
            screenResolution = theScreenResolution;
            Log.i(TAG, "Screen resolution: " + screenResolution);
            cameraResolution = findBestPreviewSizeValue(parameters, screenResolution);
            Log.i(TAG, "Camera resolution: " + cameraResolution);
        }

  • 相关阅读:
    Python环境搭建
    接口测试工具Jmeter
    接口测试工具postman
    fiddler -- 一个强大的抓包工具
    Pychram中使用reduce()函数报错:Unresolved reference 'reduce'
    Mac下用命令行获取苹果手机的UDID
    python 的 lambda使用笔记
    appium报错:An unknown server-side error occurred while processing the command. Original error: Could not proxy command to remote server. Original error: Error: read ECONNRESET
    Pycharm中使用from appium import webdriver时报错:ModuleNotFoundError: No module named 'appium'
    如何升级pip3
  • 原文地址:https://www.cnblogs.com/bravestarrhu/p/4671218.html
Copyright © 2011-2022 走看看