全Delphi代码实现安卓扫码程序

前言

手机扫码在APP里的需求较高的,通常Delphi实现扫码主要有两种方式:

方式一、

通过调用JAR包功能实现,该方法目前使用率颇高,在结合Delphi实现扫码功能的时候配置过程繁多,需要发布较多的资源文件 ,扫码界面不能定制。
(在查看JAR包里内容时,发现很多与扫码无关的内容,包括通讯录的访问、电子邮件、短信、WIFI、网络等,如下图)
在这里插入图片描述
这些jar包里的我理解与扫码无关的类文件究竟做什么的 我没有深入去研究 ,也可能是开发者有其他需求方面的考虑,对我来说这些文件(或功能)冗余。

方式二、全部使用Delphi实现扫码

这种方式下不需要调用Jar包,开发简单方便,适合于熟悉Dephi的朋友,不用去了解Jar包。这种方法使用不多的原因是系统自带相机组件在显示扫码画面时的卡顿问题。好在,卡顿的问题可以得到解决。所以,也有很多的朋友在使用。

通过一些尝试,我将主要用于扫码的功能做了封装,使用起来就更为方便。( 演示代码请至:https://download.csdn.net/download/tanqth/12668686下载

Delphi实现扫码说明

下载后的压缩包里 Source\Delphi\Lib 目录中包括了两种不同的静态库文件,均可使用。静态库文件使用 D10.3.2编译生成,暂未在其他开发版本中测试过,理论上其他版本也应该可以使用。

代码说明

代码简单到整个单元不足100行(包括文件引用与窗体控件的定义),实际使用仅需要三个函数一个回调用 过程:
在这里插入图片描述
在代码中,我们主要使用到三个函数(初始化、扫码功能、结束清理),一个回调处理过程(处理扫码取得的信息):

//调用扫码功能的函数,参数为回调过程地址
function ScanOpen(vCallback: Pointer): Integer; cdecl;
  external LIB_FAST_UTILS name 'ScanOpen';
//调用静态库内的初始化过程 其中第二个参数是扫码完成后提示音文件(你可以使用自己喜欢的提示音)
procedure Init(vApp: TApplication; vBeep: string); cdecl;
  external LIB_FAST_UTILS name 'Init';

procedure Finit; cdecl; external LIB_FAST_UTILS name 'Finit';

Procedure OutText(Const AText: String); //扫码后的回调过程

演示程序里回调过程仅将取得的扫码结果用于显示出来。

项目设置

项目设置中仅需要将静态库文件路径加入到搜索路径中即可( 这项设置非常重要 ):
在这里插入图片描述
安卓高版本下需要动态申请相机与存储卡访问权限,这部分代码已完全整合到静态库中,我们制作程序时可以完全不用再去考虑。

其他说明

因为静态库里包括了扫码时的界面,所以扫码界面暂不可使用(使用静态库方式下)。静态库完全使用Delphi开发,引用库后,系统会自动将库中的代码完全整合到APP中,不需要再发布库文件。
因为时间与经历有限,可能会存在一些考虑不周的地方,以及BUG。

更换扫码成功后的提示音时,需要发布声音文件,然后修改初始化代码,将需要的提示音文件路径传递给静态库。

演示代码及封装静态库下载地址

点击可跳转下载页面
BIN目录内有已编译好的APP,可直接安装测试使用效果。

其他需要

您可以联系我。


欢迎光顾本人小店:(https://shop63778938.taobao.com/)
小店也提供delphi方面其他技术支持、定制开发。

现在就进店看看

大家有什么不清楚的,可以给我留言讨论
以上信息对您有用的话请点赞收藏,就下面这行

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值