相机扫描二维码 - 安卓

12

我目前正在研究在Android中构建闹钟应用程序。我对使用QR码进行编程完全没有经验,一无所知。但现在,我想要探索创建具备QR码功能的应用程序的可行性。(我有两周时间来完成这个项目)

我的第一个问题是:我是否需要在代码中自己处理相机,即需要我启动相机并关闭它,然后处理QR码图像?

第二个问题是:我该如何创建QR码,扫描时如何确保它扫描了正确的那一个? 我想打印一个二维码,放在厨房或浴室里,当闹钟响时,我必须先扫描二维码才能关闭闹钟。


你能帮我吗?我和你当时处于同样的阶段,我需要开发一个和你开发过的同类应用。 - Sun
2个回答

16

1
嗨,通过意图扫描和执行Qadir在他的答案中发布的操作有什么区别? - Johnathan Au
这正是Qadir所发布的内容,没有任何不同。 - Sean Owen
抱歉,我不太明白IntentIntegrator类的作用,与Qadir的示例相比有何区别。它是否也会在外部打开条形码扫描器应用程序? - Johnathan Au
这个答案也使用了zxing,但更简单:https://dev59.com/uWoy5IYBdhLWcg3wA5aC#8833123 - Amos

7

只需下载二维码扫描器(QR-Code Scanner)apk文件。

http://www.aapktop.com/tag/barcode-scanner-apk http://www.4shared.com/android/2lwrpeHZ/Barcode_Scanner.html http://code.google.com/p/zxing/downloads/detail?name=BarcodeScanner4.31.apk

将其安装到设备上(而不是模拟器)。

现在按照以下步骤操作。

  1. create a new project
  2. place a button in your XML file.
  3. Make a click event for it and call the (QR-Code Scanner) via intent as

            // Scan Handler
    btnScan.setOnClickListener(new OnClickListener() {
    
        @Override
        public void onClick(View v) {
    
            Intent intent = new Intent(
                    "com.google.zxing.client.android.SCAN");
            intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
            startActivityForResult(intent, 0);
        }
    });
    
  4. Override the onActivityResult Method as

    // ZXing Result Handler
    
    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    
    if (requestCode == 0) {
        if (resultCode == RESULT_OK) {
    
    
                contents = intent.getStringExtra("SCAN_RESULT"); // This will contain your scan result
                    String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
    
    
        }
     }
    

Q2

Answer

有许多链接可以免费生成各种类型的QR-CODE。只需在Google上搜索“在线QR CODE生成器”即可。http://qrcode.kaywa.com/


非常感谢你提供的信息,这很有帮助。我担心同时运行不同的任务,特别是闹钟、QR 任务、相机等。这方面是否存在线程等问题?或者 zxing 会处理这些问题吗? - Johnathan Au
Zxing只会解码您的条形码或QR码(在onActivityResult结果中)。之后,您可以做任何事情。首先,我建议您尝试我的解决方案。您对此有许多困惑。这将澄清许多问题。 - Qadir Hussain
2
我建议您只使用code.google.com上的官方下载链接。您可以相信这是我们(开发人员)提供的。这个指导很好,但如果您使用项目中的IntentIntegrator代码(https://code.google.com/p/zxing/wiki/ScanningViaIntent),它甚至可以更容易。同样的想法,只是为您处理更多的小问题。最后 - 像任何体面的应用程序一样,当不在前台时,条形码扫描器不会执行任何操作,因此在应用程序不活动时不会对其产生影响。 - Sean Owen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接