基于App Inventor 2的快递称重APP设计

时间:2022-10-11 05:59:15

基于App Inventor 2的快递称重APP设计

摘要:随着当前网络购物的普及和发展,网络购物市场的用户规模、交易规模及快递业务量急剧增加,对快递业务中的快捷称重和物品丢包/掉包现象的监测尤为重要。基于App Inventor 2平台开发了一款适用于安卓系统的快递称重APP,可扫描快递单条形码获取快递单号信息,可从蓝牙电子秤接收快递重量数据,可实现管理快递的重量信息、扫描时间、快递单号等功能,人机交互界面友好,降低了快递员的工作负担,提高了工作效率。

关键词:APP设计;快递称重;蓝牙通信;安卓系统

DOIDOI:10.11907/rjdk.161779

中图分类号:TP319

文献标识码:A文章编号:16727800(2016)010008503

0引言

目前,网络购物已成为一种生活方式,网络购物市场的用户规模、交易规模日益庞大,快递业务量急剧增加,给广大网民带来了极大的生活便利和购物实惠,同时也给物流业带来了巨大的压力和挑战。当前快递业务称重计价环节大多采用手工称重录入方式,费时费力、容易出错且效率不高[1];快递包裹物流过程中容易出现物品被换或丢失现象;已开发的快递业务的相关软件多为快递查单,因此亟需开发一种快递称重管理软件。

1基于App Inventor2的快递称重APP设计

本文基于App Inventor2(简称AI2)开发适用于安卓系统的快递称重APP,其主要模块有:蓝牙通信和数据接收模块、称重扫描模块、数据管理模块。该APP可识别条码信息,并获取、存储条码扫描时刻;可通过安卓手机的蓝牙通信接口从蓝牙电子秤获取快递包裹的重量信息;可输入每单快递重量的单价自动计算出承运费用;能够在录入的快递包裹信息数据库中以快递单号、扫描时间、重量等字段进行查询。

1.1App Inventor2开发环境搭建

Google公司推出的Android智能手机平台系统,以其开源、开放和优异便捷的开发架构,吸引了众多程序开发者[2]。AI2是一款全云端的基于浏览器的完全在线开发的全图形界面编程环境[34],使用者采用乐高积木式的堆栈法,无需写程序代码即可完成应用程序的开发[5],为用户提供便捷的开发环境和方法。AI2提供了基于本地数据库、网络数据库等多种存储方式[67],鉴于本设计中仅需要在手机中存储快递信息,因此采用本地微型数据库控件TinyDB实现数据的存储与访问。

1.2蓝牙通信和数据接收模块设计

蓝牙技术规定两个设备进行蓝牙通信时[8],选用BluetoothClient组件,使手机蓝牙工作在主端模式;使用的蓝牙电子秤为快递行业常用电子秤(型号:XK3190-A12+E),工作在从端模式。

在AI2中支持蓝牙通信的控件选用BluetoothClient实现实时接收蓝牙电子秤传送数据的功能。具体实现过程是:程序执行时BluetoothClient组件调用其Connect、Disconnect方法,完成蓝牙电子秤与手机蓝牙连接与断开;调用ReceiveText、BytesAvailableToReceive方法,完成应用程序对蓝牙电子秤传送数据的接收[24]。当蓝牙电子秤的蓝牙模块配对成功后,蓝牙电子秤与BluetoothClient组件开始通信,手机就实时接收蓝牙电子秤传送的重量数据;同时设计使用一个Timer组件来监测APP是否接收数据,并增设一个Notifier组件来监测蓝牙通信和数据接收过程可能出现的异常。

1.3称重及条码扫描模块设计

称重及条码扫描模块设计的任务是实时、准确地接收蓝牙电子秤发送的快递包裹重量数据和条码信息数据,主要涉及Clock、TinyDB、BluetoothClient、BarcodeScanner、TextBox等组件。

蓝牙电子秤发送的并不直接是电子秤上显示的重量,这就需要将手机APP接收的原始数据按一定规则解析出来,恢复成显示值。蓝牙电子秤发送到手机APP端的底层数据格式为:…=dc.ba00=dc.ba00=dc.ba00=dc.ba00=dc.ba00=…(其中a、b、c、d均为0到9的整数),其中存入变量Mid中的字符已变为“00ab.cd”,再进行一个“修正”过程,才成为重量的实际值,数据处理流程如图1所示。当点击“称重”按钮时,重量信息将显示在ShowSync文本中,同时将快递重量数据保存到微数据库中。

扫描模块设计主要调用BarcodeScanner组件实现。该组件具有唯一的组件属性UseExternalScanner。本设计取消“选中”,直接调用客户端用户的手机“相机”功能进行条码扫描。当称重操作完成后,点击“条码扫描”按钮,调用BarcodeScanner组件,进而启用相机功能,对快递单上的条形码进行扫描,返回值为“快递单号”。 扫码操作完成后,为防止误触“条码扫描”按钮重复操作,设定 “条码扫描”Enabled属性为false,当“称重”按钮被点击后,“条码扫描”按钮才会重新启用。最后点击“提交”按钮,即完成对该件快递全部信息的采集;然而在某些场合,就是进行简单的快捷称重,不涉及条码扫描操作,可以点击“称重”按钮称重后,直接点击“提交”按钮提交数据,存放到微数据库中。

1.4数据管理模块设计

数据库管理模块设计主要通过TinyDB组件实现。该模块可实现以下功能:提示记录及存储数据管理、快递费用核算、快递信息查询和清空。

1.4.1提示记录及存储数据管理

实现提示记录及存储数据管理功能,为了方便用户与应用程序交互,选取Notifier组件来完成。随着快递单数的增加,提示记录消息也同样增多,就需要对前面已产生的记录信息进行清除,点击“清空记录”按钮,弹出一个选择对话框,点击“确定”按钮即完成对提示记录的清除;同样,当“删除数据”按钮被点击时,也将调用一个Notifier组件,彻底删除存储的所有数据。

1.4.2快递费用核算

在使用快递称重辅助软件APP时,如何方便、快捷地核算快递费用自然十分必要。当点击“信息管理”按钮时,会使表格布局2对用户可见,在表格布局2中,点击“费用核算”按钮 ,又会使水平布局5可见(参考图3示意),布局中“总重量”、“首重”和“续重”栏重量已显示当前重量,只需要在“首重费用”和“续重单价”栏输入单价,点击“核算”按钮,即可迅速计算出快递承运费用。

1.4.3快递信息查询和清空

设计的APP可以使用扫描时间、快递单号、重量信息3个字段对快递信息进行查询。同样点击“信息管理”按钮,会使表格布局2对用户可见。在该布局中,点击Spinner组件就可以很方便地选择查询方式。无论使用何种查询方式,导入扫描时间、条码、重量信息后,查询结果都将显示满足条件的某条或某几条快递的扫描时间、快递单号、快递重量信息以及累计重量信息。

为使客户端用户拥有良好的用户体验,本文设计的APP包括两个Screen界面:Screen1(启动画面)和Screen2(主界面)。由Screen1切换到Screen2,通过在Screen1中调用一个Clock组件执行“open another screen screenName”事件来实现,该组件的TimeInterval属性设置为默认值1 000(单位:ms),即1s后跳转到主界面;同样,在Screen1的界面设计中,找到Media部分,点击“Upload File…”按钮,上传图片素材(Bluetooth.jpg和Start.jpg);然后将上传的两张图片素材分别应用到Screen1的Icon和BackgroundImage属性中,即完成应用图标和启动画面的设计。APP的工作流程如图2所示。

2测试分析

在AI2开发环境下,设计和实现了基于Android平台的快递称重APP,分别在模拟器和手机上进行了测试(平台版本Android4.2)。

快递包裹重量实时录入测试:当前录入第5条快递信息,黑色背景框中显示快递的实时重量,点击“称重”按钮称重,读取重量信息,并记录扫描时间;当前快递的信息对应显示在“时间”、“条码”、“重量”方框中,所有快递的累计重量显示在“合计”方框中,测试结果如图3所示。同时,依次点击“信息管理”和“费用核算”按钮,显示了费用核算布局,每提交一次数据,该布局中同步更新总重量、首重和续重数据。

快递包裹查询测试:测试时,在右边时间框中,输入“4.25”字样,显示了当天录入的3条快递信息,其中累计重量显示在第4列。在实际应用场合,派件员重复进行“称重-扫描-提交”操作,就能在包裹出库前方便、快捷地完成快递信息采集,大大提高工作效率;包裹出库后,在

快递运输到某一转运点时,一旦遗失某一快递(假设其快递单号为:xxxxxxxxxxxxx),将无法将该快递信息录入APP,而此前的转运点扫描时,录入了单号为xxxxxxxxxxxxx的快递,则说明上一转运点到当前转运网点过程中快递遗失。这样就可以起到及时监测快递转运过程中丢包/掉包现象的作用。

3结语

基于App Inventor 2的适用于Android系统的快递称重APP,可扫描快递条码单号,解析接收到蓝牙电子秤的快递重量数据,管理快递扫描时间、快递单号、快递重量信息等,界面友好、操作简单、使用方便,使快递业务管理更加标准化,提高了快递人员的工作效率,具有较高的社会推广和应用价值。

参考文献参考文献:

[1]顾九春,刘璐,姚琛,等.快递物流跟踪信息交换模型及应用研究[J].计算机应用研究,2015,32(9):27122715.

[2]杨丰盛.Android应用开发揭秘[M].北京:机械工业出版社,2010.

[3]王寅峰.App Inventor2中文版开发实战:Android智能应用开发前传[M].北京:电子工业出版社,2015.

[4]DEREK WALTER.MIT App Inventor完全上手:不会编程也能“乐高式”构建Android应用的编程神器[M].北京:清华大学出版社,2015.

[5]李兴华.Android开发实战经典[M].北京:清华大学出版社,2012.

[6]易伟.人人都能开发安卓APP:App Inventor2应用开发实战[M].北京:机械工业出版社,2014.

[7]张国印,沈洁.可视化开发Android应用程序:拼图开发模式App Inventor2[M].北京:清华大学出版社,2013:2540.

[8]岳军.基于社区的智能快递发件系统及其实现方法[P].中国,CN103268540,20130828.

上一篇:农村中职农学专业“学校+企业+农户”教学模式... 下一篇:高中生化学自主学习能力的形成