在CaptureActivity类中找到以下方法:

/**

* Handler scan result

*

* @param result

* @param barcode

*/

public void handleDecode(Result result, Bitmap barcode)

{

inactivityTimer.onActivity();

playBeepSoundAndVibrate();

String resultString = result.getText();

doResult(resultString);

}

/**

* 增加的部分:对扫描返回的结果进行处理

*/

private void doResult(String result)

{

if (result.equals(""))

{

ToastUtil.showToastByThread(getApplicationContext(),

"二維碼掃描失敗,請手動輸入!");

} else

{

mHandler.postDelayed(runnable, 1000);

}

}

/**

* 增加的部分:实现多次重复扫描,否则本界面打开一次,只能聚焦一次,扫描一次。增加这一部分之后就能连续聚焦,连续扫描

*/

Handler mHandler = new Handler();

Runnable runnable = new Runnable()

{

@Override

public void run()

{

if (handler != null)

{

try

{

mHandler.postDelayed(runnable, 1000);

handler.restartPreviewAndDecode(); // 实现多次扫描

} catch (Exception e)

{

e.printStackTrace();

}

}

}

};

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐