【发布时间】:2017-06-06 15:39:11
【问题描述】:
我创建了一个在 SurfaceView 中显示前置摄像头的 Android 应用程序。
我希望员工走到设备前,出示二维码并进入大楼。
到目前为止,我已尝试将 SurfaceView 内容转换为位图并使用 Google Barcode Codelabs 读取内容无济于事。
有人对此有什么建议吗?
我需要该应用不断等待二维码。
非常感谢
【问题讨论】:
我创建了一个在 SurfaceView 中显示前置摄像头的 Android 应用程序。
我希望员工走到设备前,出示二维码并进入大楼。
到目前为止,我已尝试将 SurfaceView 内容转换为位图并使用 Google Barcode Codelabs 读取内容无济于事。
有人对此有什么建议吗?
我需要该应用不断等待二维码。
非常感谢
【问题讨论】:
使用可以使用 startActivityForResult 启动的库可能最容易做到这一点。然后当回调触发(onActivityResult)时,您可以检查其是否为有效的二维码,然后重新启动二维码扫描活动。
我要注意的一件事是,安全系统非常不安全,因此不要将其用于安全性很重要的建筑物。
您将需要 zxing 条码扫描器应用程序才能使此代码正常工作。
package com.example.userme.qr;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
private static final int REQUEST = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, REQUEST);
}
}
【讨论】: