Nexus 5X 使用Zxing扫描倒立
生活随笔
收集整理的這篇文章主要介紹了
Nexus 5X 使用Zxing扫描倒立
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Nexus 5X 使用Zxing掃描倒立的原因說是Nexus 5X 的攝像頭是倒裝的。
今天簡單解決下,方案是判斷機型如果是Nexus 5X,就倒立攝像頭
這樣就OK了,如圖:
下面附加下手機系統詳細信息
private String getDeviceInfo(){StringBuffer sb =new StringBuffer();sb.append("主板:"+android.os.Build.BOARD);sb.append("\n系統啟動程序版本號:"+ android.os.Build.BOOTLOADER);sb.append("\n系統定制商:"+android.os.Build.BRAND);sb.append("\ncpu指令集:"+android.os.Build.CPU_ABI);sb.append("\ncpu指令集2:"+android.os.Build.CPU_ABI2);sb.append("\n設置參數:"+android.os.Build.DEVICE);sb.append("\n顯示屏參數:"+android.os.Build.DISPLAY);sb.append("\n無線電固件版本:"+android.os.Build.getRadioVersion());sb.append("\n硬件識別碼:"+android.os.Build.FINGERPRINT);sb.append("\n硬件名稱:"+android.os.Build.HARDWARE);sb.append("\nHOST:"+android.os.Build.HOST);sb.append("\n修訂版本列表:"+android.os.Build.ID);sb.append("\n硬件制造商:"+android.os.Build.MANUFACTURER);sb.append("\n版本:"+android.os.Build.MODEL);sb.append("\n硬件序列號:"+android.os.Build.SERIAL);sb.append("\n手機制造商:"+android.os.Build.PRODUCT);sb.append("\n描述Build的標簽:"+android.os.Build.TAGS);sb.append("\nTIME:"+android.os.Build.TIME);sb.append("\nbuilder類型:"+android.os.Build.TYPE);sb.append("\nUSER:"+android.os.Build.USER);return sb.toString();}Nexus 5X 的結果如下:
主板:bullhead 系統啟動程序版本號:BHZ10k 系統定制商:google cpu指令集:arm64-v8a cpu指令集2: 設置參數:bullhead 顯示屏參數:MMB29K 無線電固件版本:M8994F-2.6.30.0.68 硬件識別碼:google/bullhead/bullhead:6.0.1/MMB29K/2419427:user/release-keys 硬件名稱:bullhead HOST:wpix2.hot.corp.google.com 修訂版本列表:MMB29K 硬件制造商:LGE 版本:Nexus 5X 硬件序列號:00845be94c54a76a 手機制造商:bullhead 描述Build的標簽:release-keys TIME:1447281289000 builder類型:user USER:android-build : config.version = 1514962991buidldReqConfig{ brand= LGE ,model= Nexus 5X ,os.type= 2 ,os.kernel= 3.10.7 ice bind flag:0 device when device bind flag:false有更好的方案請各位大神告知。
https://www.zhihu.com/question/52915865
附:
如果使用的是:
https://github.com/yipianfengye/android-zxingLibrary
就找到
CaptureFragment.java 的 initCamera() 方法,找到Camera對象即可,代碼如下
如果使用的是:https://github.com/chentao0707/ZXingProject
找到CameraManager.java的openDriver()方法,在方法最后添加即可:
public synchronized void openDriver(SurfaceHolder holder) throws IOException {Camera theCamera = camera;if (theCamera == null) {if (requestedCameraId >= 0) {theCamera = OpenCameraInterface.open(requestedCameraId);} else {theCamera = OpenCameraInterface.open();}if (theCamera == null) {throw new IOException();}camera = theCamera;}theCamera.setPreviewDisplay(holder);if (!initialized) {initialized = true;configManager.initFromCameraParameters(theCamera);}Camera.Parameters parameters = theCamera.getParameters();String parametersFlattened = parameters == null ? null : parameters.flatten(); // Save// these,// temporarilytry {configManager.setDesiredCameraParameters(theCamera, false);} catch (RuntimeException re) {// Driver failedLog.w(TAG, "Camera rejected parameters. Setting only minimal safe-mode parameters");Log.i(TAG, "Resetting to saved camera params: " + parametersFlattened);// Reset:if (parametersFlattened != null) {parameters = theCamera.getParameters();parameters.unflatten(parametersFlattened);try {theCamera.setParameters(parameters);configManager.setDesiredCameraParameters(theCamera, true);} catch (RuntimeException re2) {// Well, darn. Give upLog.w(TAG, "Camera rejected even safe-mode parameters! No configuration");}}}//解決nexus5x掃碼倒立的情況if(android.os.Build.MANUFACTURER.equals("LGE") &&android.os.Build.MODEL.equals("Nexus 5X")) {camera.setDisplayOrientation(270);}}但是解決了倒立之后,確無法正常掃描,把手機倒過來才可以正常掃描,目前還沒解決。
總結
以上是生活随笔為你收集整理的Nexus 5X 使用Zxing扫描倒立的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第5章-CSS盒子模型
- 下一篇: UVM学习笔记—快速入门篇