建立一个 "Hello World" 应用程序

首先,我们将演示如何构建一个 "hello world" 应用程序,我们将按以下几个版本和编程语言分别说明:

Windows 版本 - C

本文展示了如何用 Windows 版本(C语言)在桌面应用程序中创建简单的 "hello world" 程序。

步骤

  1. 启动 Visual Studio,并在 C 中创建新的 Win32 控制台应用程序,让我们把它命名为 BarcodeReadDemo_C

  2. BarcodeReadDemo_C.c中添加头文件和库。

     #include <stdio.h>
     #include "<relative path>/DynamsoftBarcodeReader.h"
    
     #ifdef _WIN64
     #pragma comment(lib, "<relative path>/DBRx64.lib")
     #else
     #pragma comment(lib, "<relative path>/DBRx86.lib")
     #endif
    

    注意: 请将代码中的 <relative path> 替换为 BarcodeReadDemo_C.c 文件的相对路径。通常情况下, DynamsoftBarcodeReader.h 文件可以在 "[INSTALL FOLDER]\Components\C_C++\Include\" 中找到,lib 文件可以在 "[INSTALL FOLDER]\Components\C_C++\Lib\" 中找到。

  3. BarcodeReadDemo_C.c 中, 请按如下所示更新 'main' 函数中的代码。

    您需要在代码中分别使用有效的license key更新 <your image file full path><your license key here> 的值。

    如果您已经下载并安装了 Dynamsoft Barcode Reader 30天免费试用版, 您可以在"C:\Program Files (x86)\Dynamsoft\Barcode Reader {version number}\LicenseManager.exe"中找到license key。如果还未下载安装, 请点击此处下载。

    int main()
    {
     // 定义变量
     void *hBarcode = NULL;
     int iRet = -1;
     int iIndex = 0;
     STextResultArray *pResult = NULL;
    
     hBarcode = DBR_CreateInstance();
    
     // 在解码之前初始化许可证
     DBR_InitLicense(hBarcode, "<your license key here>");
    
     // 开始解码
     DBR_DecodeFile(hBarcode, "<your image file full path>", "");
    
     // 获取结果
     iRet = DBR_GetAllTextResults(hBarcode, &pResult);
    
     // 如果发生错误
     if (iRet != DBR_OK) {     
         printf("Failed to read barcode: %d\r\n%s\r\n", iRet, DBR_GetErrorString(iRet));     
         return iRet; 
     }
    
     // 如果成功执行
     printf("%d total barcode(s) found. \n", pResult->nResultsCount);
     for (iIndex = 0; iIndex < pResult->nResultsCount; iIndex++)
     {
         printf("Result %d\n", iIndex + 1);
         printf("Barcode Format: %s\n", pResult->ppResults[iIndex]->pszBarcodeFormatString);
         printf("Text reads: %s \n", pResult->ppResults[iIndex]->pszBarcodeText);
     }
    
     // 释放 BarcodeResultArray 并销毁实例
     DBR_FreeTextResults(&pResult);
     DBR_DestroyInstance(hBarcode);
    
     return 0;
    }
    
  4. 运行该项目。

    生成应用程序, 并在 x86 模式下将 x86\DynamsoftBarcodeReaderx86.dllx86\vcomp110.dllx86\DynamicPdf.dll 文件复制到.exe所在文件夹下(若在 x64 模式下,复制 x64\DynamsoftBarcodeReaderx64.dllx64\vcomp110.dllx64\DynamicPdfx64.dll 这些文件)。上面提到的所需dll 可以在 "[INSTALL FOLDER]\Components\C_C++\Redist\" 中找到。

    若要部署应用程序, 请确保 dll 与 exe 文件位于同一文件夹中。如果您的条形码来自 pdf 文件, 则必须确保 DynamicPdf.dllDynamicPdfx64.dll也在同一目录下。

Windows 版本 - C++

本文展示了如何用 Windows 版本(C++语言)在桌面应用程序中创建简单的 "hello world" 程序。

步骤

  1. 启动 Visual Studio,并在 C 中创建新的 Win32 控制台应用程序,让我们把它命名为 BarcodeReadDemo_CPP

  2. BarcodeReadDemo_CPP.cpp中添加头文件和库。

     #include <stdio.h>
     #include "<relative path>/DynamsoftBarcodeReader.h"
    
     #ifdef _WIN64
     #pragma comment(lib, "<relative path>/DBRx64.lib")
     #else
     #pragma comment(lib, "<relative path>/DBRx86.lib")
     #endif
    

    注意: 请将代码中的 <relative path> 替换为 BarcodeReadDemo_CPP.cpp 文件的相对路径。通常情况下, DynamsoftBarcodeReader.h 文件可以在 "[INSTALL FOLDER]\Components\C_C++\Include\" 中找到,lib 文件可以在 "[INSTALL FOLDER]\Components\C_C++\Lib\" 中找到。

  3. BarcodeReadDemo_CPP.cpp 中, 请按如下所示更新 'main' 函数中的代码。

    您需要在代码中分别使用有效的license key更新 <your image file full path><your license key here> 的值。

    如果您已经下载并安装了 Dynamsoft Barcode Reader 30天免费试用版, 您可以在"C:\Program Files (x86)\Dynamsoft\Barcode Reader {version number}\LicenseManager.exe"中找到license key。如果还未下载安装, 请点击此处下载。

     int main()
     {
     // Define variables
     int iRet = -1;
     STextResultArray *paryResult = NULL;
    
     // Initialize license prior to any decoding
     CBarcodeReader reader;
     reader.InitLicense("<your license key here>");
    
     // Start decoding
     iRet = reader.DecodeFile("<your image file full path>", "");
    
     // If error occurs
     if (iRet != DBR_OK)
     {
         printf("Failed to read barcode: %d\r\n%s\r\n", iRet, DBR_GetErrorString(iRet));
         return iRet;
     }
    
     // If succeeds
     reader.GetAllTextResults(&paryResult);
     printf("%d total barcodes found. \r\n", paryResult->nResultsCount);
     for (int iIndex = 0; iIndex < paryResult->nResultsCount; iIndex++)
     {
         printf("Result %d\r\n", iIndex + 1);
         printf("BarcodeFormat: %s\r\n", paryResult->ppResults[iIndex]->pszBarcodeFormatString);
         printf("Text read: %s\r\n", paryResult->ppResults[iIndex]->pszBarcodeText);
     }
    
     // Finally release BarcodeResultArray
     CBarcodeReader::FreeTextResults(&paryResult);
    
     return 0;
     }
    
  4. 运行该项目。

    生成应用程序, 并在 x86 模式下将 x86\DynamsoftBarcodeReaderx86.dllx86\vcomp110.dllx86\DynamicPdf.dll 文件复制到.exe所在文件夹下(若在 x64 模式下,复制 x64\DynamsoftBarcodeReaderx64.dllx64\vcomp110.dllx64\DynamicPdfx64.dll 这些文件)。上面提到的所需dll 可以在 "[INSTALL FOLDER]\Components\C_C++\Redist\" 中找到。

    若要部署应用程序, 请确保 dll 与 exe 文件位于同一文件夹中。如果您的条形码来自 pdf 文件, 则必须确保 DynamicPdf.dllDynamicPdfx64.dll也在同一目录下。

Windows 版本 - C#

本文展示了如何用 Windows 版本(C#语言)在桌面应用程序中创建简单的 "hello world" 程序。

步骤

  1. 启动 Visual Studio 并在 C# 中创建新的 Windows 窗体应用程序。

  2. 右键单击 "解决方案资源管理器" 中的 References,将 Dynamsoft.BarcodeReader.dll 添加到项目中。

    注意: 此dll可以在安装文件夹中找到。通常情况下, 它们位于以下文件夹:

    • For .NET Framework 2.0-3.5:

      "[INSTALL FOLDER]\Components\DotNet\2.0\"

    • For .NET Framework 4.0 and later:

      "[INSTALL FOLDER]\Components\DotNet\4.0\"

  3. 添加命名空间:

    using Dynamsoft.Barcode;

  4. 在窗体上创建一个新按钮, 并将 button1_Click 的内容替换为以下代码。

    注意: 您需要在代码中分别使用有效的license key更新 <your image file full path><your license key here> 的值。

    如果您已经下载并安装了 Dynamsoft Barcode Reader 30天免费试用版, 您可以在"C:\Program Files (x86)\Dynamsoft\Barcode Reader {version number}\LicenseManager.exe"中找到license key。如果还未下载安装, 请点击此处下载。

     private void button1_Click(object sender, EventArgs e)
     {
         try
         {
             BarcodeReader dbr = new BarcodeReader();
             dbr.LicenseKeys = "<your license key here>";
             TextResult[] aryResult = dbr.DecodeFile("<your image file full path>", ""); //保留模板名称为空 ("") 将使用默认设置进行解码
    
             if (aryResult.Length == 0)
             {
                 Console.WriteLine("No barcode found.");
             }
             else
             {
                 for (var i = 0; i < aryResult.Length; i++)
                 {
                     Console.WriteLine("Barcode: {0}", (i + 1));
                     Console.WriteLine("BarcodeFormat: {0}", aryResult[i].BarcodeFormat.ToString());
                     Console.WriteLine("BarcodeText: {0}", aryResult[i].BarcodeText);
                 }
             }
         }
         catch (BarcodeReaderException exp)
         {
             Console.WriteLine("Error: {0}, {1}", exp.Code.ToString(), exp.Message);
         }
     }
    
  5. 运行该项目。

    若要部署应用程序, 请确保 dll 与 exe 文件位于同一文件夹中。

Windows 版本 - VB.NET

本文展示了如何用 Windows 版本(VB.NET语言)在桌面应用程序中创建简单的 "hello world" 程序。

步骤

  1. 启动 Visual Studio 并在 VB.NET 中创建新的 Windows 窗体应用程序。

  2. 右键单击 "解决方案资源管理器" 中的 References,将 Dynamsoft.BarcodeReader.dll 添加到项目中。

    注意: 此dll可以在安装文件夹中找到。通常情况下, 它们位于以下文件夹:

    • For .NET Framework 2.0-3.5:

      "[INSTALLATION FOLDER]\Components\DotNet\2.0\"

    • For .NET Framework 4.0 and later:

      "[INSTALLATION FOLDER]\Components\DotNet\4.0\"

  3. 添加命名空间:

    Imports Dynamsoft.Barcode

  4. 在窗体上创建一个新按钮, 并将 Button1_Click 的内容替换为以下代码。

    注意: 您需要在代码中分别使用有效的license key更新 <your image file full path><your license key here> 的值。

    如果您已经下载并安装了 Dynamsoft Barcode Reader 30天免费试用版, 您可以在"C:\Program Files (x86)\Dynamsoft\Barcode Reader {version number}\LicenseManager.exe"中找到license key。如果还未下载安装, 请点击此处下载。

     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
         Dim reader As New BarcodeReader
         reader.LicenseKeys = "<Put your license key here>"
         Dim aryResult As TextResult()
         Try
             aryResult = reader.DecodeFile("<your image file full path>", "") ' 保留模板名称为空 ("") 将使用默认设置进行解码
             If aryResult.length == 0 Then
                 MessageBox.Show("No barcode found.")
                 Return
             End If
    
             Dim strInfo As String
             strInfo = "Total barcode(s) found: " + aryResult.Length.ToString() + vbCrLf
             For i = 0 To aryResult.Length - 1
                 strInfo += "Barcode: " + (i + 1).ToString() + ":" + vbCrLf
                 strInfo += "BarcodeFormat: " + aryResult(i).BarcodeFormat.ToString() + vbCrLf
                 strInfo += "BarcodeText: " + aryResult(i).BarcodeText.ToString() + vbCrLf + vbCrLf
             Next
             MessageBox.Show(strInfo)
         Catch ex As BarcodeReaderException
             MessageBox.Show("Error Code:" + ex.Code.ToString() + vbCrLf + "Error String: " + ex.Message)
         End Try
     End Sub
    
  5. 运行该项目。

    若要部署应用程序, 请确保 dll 与 exe 文件位于同一文件夹中。

Linux 版本 - C

本文展示了如何用 Linux 版本(C语言)在桌面应用程序中创建简单的 "hello world" 程序。

步骤

  1. 使用以下代码创建 makefile 文件。

     CC=gcc
     CCFLAGS=-c
    
     DBRLIB_PATH=<relative path>/lib
     LDFLAGS=-L $(DBRLIB_PATH) -Wl,-rpath=$(DBRLIB_PATH) -Wl,-rpath=./
     DBRLIB=-lDynamsoftBarcodeReader
    
     TARGET=ReadBarcode
     OBJECT=ReadBarcode.o
     SOURCE=ReadBarcode.c
    
     # build rule for target.
     $(TARGET): $(OBJECT)
         $(CC) -o $(TARGET) $(OBJECT) $(STDLIB) $(DBRLIB) $(LDFLAGS)
    
     # target to build an object file
     $(OBJECT): $(SOURCE)
         $(CC) $(CCFLAGS) $(SOURCE)
    
     # the clean target
     .PHONY : clean
     clean: 
         rm -f $(OBJECT) $(TARGET)
    

    注意: 您需要在代码中替换 <relative path> 的值。

  2. 创建一个空的 ReadBarcode.c 文件, 并将下面的代码复制到.c文件中。

     #include <stdio.h>
     #include "<relative path>/DynamsoftBarcodeReader.h"
    
     int main()
     {
         // 定义变量
         void *hBarcode = NULL;
         int iRet = -1;
         int iIndex = 0;
         STextResultArray *pResult = NULL;
    
         hBarcode = DBR_CreateInstance();
    
         // 在解码之前初始化许可证
         DBR_InitLicense(hBarcode, "<your license key here>");
    
         // 开始解码
         DBR_DecodeFile(hBarcode, "<your image file full path>", "");
    
         // 获取结果
         iRet = DBR_GetAllTextResults(hBarcode, &pResult);
    
         // 如果发生错误
         if (iRet != DBR_OK) {     
             printf("Failed to read barcode: %d\r\n%s\r\n", iRet, DBR_GetErrorString(iRet));     
             return iRet; 
         }
    
         // 如果执行解码成功
         printf("%d total barcode(s) found. \n", pResult->nResultsCount);
         for (iIndex = 0; iIndex < pResult->nResultsCount; iIndex++)
         {
             printf("Result %d\n", iIndex + 1);
             printf("Barcode Format: %s\n", pResult->ppResults[iIndex]->pszBarcodeFormatString);
             printf("Text reads: %s \n", pResult->ppResults[iIndex]->pszBarcodeText);
         } 
    
         // 释放 BarcodeResultArray 并销毁实例
         DBR_FreeTextResults(&pResult);
         DBR_DestroyInstance(hBarcode);
         return 0;
     }
    

    注意: 您需要在代码中更新<relative path><your image file full path><your license key here> 的值。

    如果您没有试用许可证或试用许可证已过期, 您可以在这里申请新的试用许可证。

  3. 打开 终端,使用命令 cd 将当前目录更改为生成文件所在的目录,然后执行该程序。

Linux 版本 - C++

本文展示了如何用 Linux 版本(C++语言)在桌面应用程序中创建简单的 "hello world" 程序。

步骤

  1. 使用以下代码创建 makefile 文件。

     CC=gcc
     CCFLAGS=-c
    
     DBRLIB_PATH=<relative path>/lib
     LDFLAGS=-L $(DBRLIB_PATH) -Wl,-rpath=$(DBRLIB_PATH) -Wl,-rpath=./
     DBRLIB=-lDynamsoftBarcodeReader
    
     STDLIB=-lstdc++
    
     TARGET=ReadBarcode
     OBJECT=ReadBarcode.o
     SOURCE=ReadBarcode.cpp
    
     # build rule for target.
     $(TARGET): $(OBJECT)
         $(CC) -o $(TARGET) $(OBJECT) $(STDLIB) $(DBRLIB) $(LDFLAGS)
    
     # target to build an object file
     $(OBJECT): $(SOURCE)
         $(CC) $(CCFLAGS) $(SOURCE)
    
     # the clean target
     .PHONY : clean
     clean: 
         rm -f $(OBJECT) $(TARGET)
    

    注意: 您需要在代码中替换 <relative path> 的值。

  2. 创建一个空的 ReadBarcode.cpp 文件, 并将下面的代码复制到.c文件中。

     #include <stdio.h>
     #include "<relative path>/DynamsoftBarcodeReader.h"
    
     int main()
     {
     // 定义变量
     int iRet = -1;
     STextResultArray *paryResult = NULL;
    
     // 在解码之前初始化许可证
     CBarcodeReader reader;
     reader.InitLicense("<your license key here>");
    
     // 开始解码
     iRet = reader.DecodeFile("<your image file full path>", "");
    
     // 如果发生错误
     if (iRet != DBR_OK)
     {
         printf("Failed to read barcode: %d\r\n%s\r\n", iRet, DBR_GetErrorString(iRet));
         return iRet;
     }
    
     // 如果执行解码成功
     reader.GetAllTextResults(&paryResult);
     printf("%d total barcodes found. \r\n", paryResult->nResultsCount);
     for (int iIndex = 0; iIndex < paryResult->nResultsCount; iIndex++)
     {
         printf("Result %d\r\n", iIndex + 1);
         printf("BarcodeFormat: %s\r\n", paryResult->ppResults[iIndex]->pszBarcodeFormatString);
         printf("Text read: %s\r\n", paryResult->ppResults[iIndex]->pszBarcodeText);
     }
    
     // 释放 BarcodeResultArray
     CBarcodeReader::FreeTextResults(&paryResult);
    
     return 0;
     }
    

    注意: 您需要在代码中更新<relative path><your image file full path><your license key here> 的值。

    如果您没有试用许可证或试用许可证已过期, 您可以在这里申请新的试用许可证。

  3. 打开 终端,使用命令 cd 将当前目录更改为生成文件所在的目录,然后执行该程序。

Mobile 版本 - iOS

本文展示了如何用 Mobile iOS 版本在手机应用程序中创建简单的 "hello world" 程序。

  1. 下载 Dynamsoft Barcode Reader SDK

    如果您还没有下载 Dynamsoft Barcode Reader SDK 30天免费试用版, 请点击这里下载。

    注意: 您可能需要登录才能下载试用版。

  2. 在 Xcode 中创建新的 iOS 工程

  3. 将 barcode reader framework 添加到项目中

    3.1 将 dbr-ios-{version number}.zip 压缩并打开名为 SDK 的文件夹,此文件夹包含 DynamsoftBarcodeReader 框架。

    3.2 将框架拖放到 Xcode 项目中,请务必选择 Create groupsCopy items if needed 选项。

  4. 将所需的.tbd/.dylib文件添加到项目中

    4.1 转到 Xcode 项目的 General 选项卡, 在 Linked Frameworks and Libraries 部分, 请点击 + 按钮。

    4.2 搜索libc++.tbd 文件,选中并单击 Add 按钮,然后 libc++.tbd 文件将会被复制到您的项目里。

    注意: 对于 Xcode 版本7及更早版本,请在您的项目中包含 libc++.dylib 而不是 libc++.tbd。以下是详细的步骤:

    General 选项卡 -> Linked Frameworks and Libraries -> 单击 + 按钮 -> Add Other...

    进入文件选择窗口后,按 "CMD+Shift+G" (转到文件夹)并输入 /usr/lib/

    在此您可以找到 libc++.dylib file,选中并单击 Open

  5. 导入框架

    #import <DynamsoftBarcodeSDK/DynamsoftBarcodeSDK.h>
    
  6. 添加代码以启动解码程序

    基本项目已经设置好, 您现在可以开始开发自己的应用程序了。下面的代码演示了初始化 DynamsoftBarcodeReader 并启动解码程序:

    #import "ViewController.h"
    #import <DynamsoftBarcodeSDK/DynamsoftBarcodeSDK.h>
    
    @interface ViewController ()
    @end
    @implementation ViewController
    
    - (void)viewDidLoad {
     [super viewDidLoad];
     // Do any additional setup after loading the view, typically from a nib.
    
     // Create and initialize a DynamsoftBarcodeReader.
     DynamsoftBarcodeReader *dbr;
     // Please replace "0C859***624A5" with your own license.
     // Note: If you do not have a valid license for the SDK, some characters of the barcode results
     // will be replaced with "***".
     dbr = [[DynamsoftBarcodeReader alloc] initWithLicense:@"0C859***624A5"];
    
     UIImage *image =[UIImage imageNamed:@"BarcodeImage.png"];
    
     NSError* error = nil;
     NSArray* readResult = [dbr decodeImage:image withTemplate:@"" error:&error];
     if (error)
     {
         NSLog(@"%@", error);
     }
     else
     {
         if (readResult.count > 0)
         {
             TextResult* result = readResult[0];
             NSLog(@"%@: %@", image, result.barcodeText);
         }
         else
         {
             NSLog(@"%@: no barcode found.",image);
         }
     }
    }
    
     - (void)didReceiveMemoryWarning {
         [super didReceiveMemoryWarning];
         // Dispose of any resources that can be recreated.
     }
    
    @end
    

Windows/Linux/Mac 版本 - Java

本文展示了如何用 Java 版本在桌面应用程序中创建简单的 "hello world" 程序。

步骤

  1. 打开 Eclipse 并创建一个新的 Java 项目 "HelloDBR"

  2. 将所需的.jar文件添加到项目中

    点击 File -> Properties -> Java Build Path -> Libraries -> Add external JARs, 添加 DynamsoftBarcodeReader{version number}.jar 并点击 Apply.

  3. 导入头文件

     import com.dynamsoft.barcode.*;
    
  4. HelloDBR 的内容替换为以下代码。

    注意: 您需要在代码中更新 <your image file full path><your license key here> 的值。

    如果您没有试用许可证或试用许可证已过期, 您可以在这里申请新的试用许可证。

     public class HelloDBR {
         public static void main(String[] args) {
             try {
                 BarcodeReader dbr = new BarcodeReader();
                 dbr.initLicense("<Put your license key here>");
                 TextResult[] result = dbr.decodeFile("<your image file full path>", "");
                 String output = "";
                 for(int i =0; i<result.length;i++){
                     output += "Barcode Text: ";
                     output += result[i].barcodeText + "\n\n";                  
                 }
                 System.out.println(output);
             }
             catch(Exception ex) {
             }
         }
     }
    
  5. 运行该项目

Mobile 版本 - Android

本文展示了如何用 Mobile Android 版本在手机应用程序中创建简单的 "hello world" 程序。

  1. 下载 Dynamsoft Barcode Reader SDK

    如果您还没有下载 Dynamsoft Barcode Reader SDK 30天免费试用版, 请点击这里下载。

    注意: 您可能需要登录才能下载试用版。

  2. 在 Android Studio 中创建新的 Empty Activity 项目

  3. 导入.aar包并添加依赖项

    3.1 右击 app -> 选择 New -> Module -> 导入 .JAR/.AAR 包 -> 选择 DynamsoftBarcodeReader.aar

    3.2 打开 build.gradle 文件并添加以下代码:

    repositories {
     flatDir {
         dirs 'libs'
     }
    }
    

    然后在 dependencies{} 中添加.aar引用, 如下所示:

    将:

    implementation fileTree(dir: 'libs', include: ['*.jar'])
    

    改成:

    implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
    
  4. 添加存储访问权限

    此示例需要从存储卡中访问 "QRCode.png",因此请将以下 QRCode.png 图像添加到您的设备中。

    若要添加存储访问权限, 请打开 AndroidManifest.xml 文件, 在应用清单中放置 '' 元素。

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    
  5. 导入头文件

     import com.dynamsoft.barcode.BarcodeReader;
     import com.dynamsoft.barcode.BarcodeReaderException;
     import com.dynamsoft.barcode.TextResult;
    
  6. 编辑 app 用户界面

    打开 activity_main.xml,切换到设计视图, 添加一个按钮和一个标签, 如下所示:

  7. 添加代码

    MainActivity.java文件中:

     package com.example.leo.demo;
     import android.Manifest;
     import android.content.pm.PackageManager;
     import android.os.Environment;
     import android.support.annotation.NonNull;
     import android.support.v4.app.ActivityCompat;
     import android.support.v4.content.ContextCompat;
     import android.support.v7.app.AppCompatActivity;
     import android.os.Bundle;
     import android.view.View;
     import android.widget.Button;
     import android.widget.TextView;
     import android.widget.Toast;
    
     import com.dynamsoft.barcode.BarcodeReader;
     import com.dynamsoft.barcode.BarcodeReaderException;
     import com.dynamsoft.barcode.TextResult;
    
     public class MainActivity extends AppCompatActivity {
    
         private Button btnRead;
         private TextView textV;
         BarcodeReader barcodeReader;
         TextResult[] results;
         String filePath;
    
         @Override
         protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.activity_main);
             requestPermission();
             btnRead = findViewById(R.id.btnRead);
             textV = findViewById(R.id.textView);
             try{
                 barcodeReader = new BarcodeReader("");
                 filePath = Environment.getExternalStorageDirectory().getCanonicalPath() + "/" + "QRcode.png";
                 eventHandle();
             }catch(BarcodeReaderException e){
                 e.printStackTrace();
             }catch (Exception e){
                 e.printStackTrace();
             }
         }
    
         public void eventHandle(){
             btnRead.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View view) {
                     try{
                         results = barcodeReader.decodeFile(filePath,"");
                         if(results!=null&&results.length>0)
                             textV.setText(results[0].barcodeText);
                         else textV.setText("The file: \""+ filePath+"\" not found!");
                     }catch (BarcodeReaderException e){
                         e.printStackTrace();
                     }catch (Exception e){
                         e.printStackTrace();
                     }
                 }
             });
         }
    
         private void requestPermission(){
     if (Build.VERSION.SDK_INT>22){
     try{
             if(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){
                 ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},1);
             }
         }catch(Exception e){
         e.printStackTrace();
         }
         }
         }
    
         @Override
         public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
             super.onRequestPermissionsResult(requestCode, permissions, grantResults);
             switch (requestCode){
                 case 1:
                     if(grantResults.length<=0&&grantResults[0]!=PackageManager.PERMISSION_GRANTED) {
                         Toast.makeText(this, "Permission denied",Toast.LENGTH_SHORT).show();
                     }
             }
         }
     }
    

    AndroidManifest.xml文件中:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.example.leo.demo">
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    
     <application
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
         android:label="@string/app_name"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
         <activity android:name=".MainActivity">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
    
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
     </application>
    </manifest>
    

    build.gradle (Module:app) 中:

    apply plugin: 'com.android.application'
    
    android {
     compileSdkVersion 27
     defaultConfig {
         applicationId "com.example.leo.demo"
         minSdkVersion 15
         targetSdkVersion 27
         versionCode 1
         versionName "1.0"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
     }
     buildTypes {
         release {
             minifyEnabled false
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         }
     }
     repositories {
         flatDir {
             dirs 'libs'
         }
     }
    }
    
    dependencies {
     implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
     implementation 'com.android.support:appcompat-v7:27.1.1'
     implementation 'com.android.support.constraint:constraint-layout:1.1.2'
     testImplementation 'junit:junit:4.12'
     androidTestImplementation 'com.android.support.test:runner:1.0.2'
     androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    }
    
  8. 生成并运行应用程序

    当您运行应用程序时, 系统将要求您访问您的设备的权限, 请授予访问权限。

JavaScript 版本 - JavaScript

Dynamsoft Barcode Reader JavaScript 版本是一种基于web组装技术的用于条形码扫描的 JavaScript API。该库能够直接从静态图像和实时视频流扫码。它还支持一次读取多个码。

有关如何构建 "helloworld" 应用程序的详细信息,请参阅这里

results matching ""

    No results matching ""