CN117437728A - 一种pos设备工作的实现方法及装置 - Google Patents

一种pos设备工作的实现方法及装置 Download PDF

Info

Publication number
CN117437728A
CN117437728A CN202311763171.5A CN202311763171A CN117437728A CN 117437728 A CN117437728 A CN 117437728A CN 202311763171 A CN202311763171 A CN 202311763171A CN 117437728 A CN117437728 A CN 117437728A
Authority
CN
China
Prior art keywords
resident service
equipment
corresponding application
application
monitor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202311763171.5A
Other languages
English (en)
Other versions
CN117437728B (zh
Inventor
田步明
陆舟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN202311763171.5A priority Critical patent/CN117437728B/zh
Publication of CN117437728A publication Critical patent/CN117437728A/zh
Application granted granted Critical
Publication of CN117437728B publication Critical patent/CN117437728B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07GREGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
    • G07G1/00Cash registers
    • G07G1/12Cash registers electronically operated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Abstract

本发明公开一种POS设备工作的实现方法及装置。POS设备开机后启动常驻服务,常驻服务执行以下操作:读取并加载设备ID注册表和设备类型注册表,注册系统广播并开始监听,创建虚拟串口;当监听到第一系统广播时判断第一系统广播中的信息是否与设备ID注册表或设备类型注册表匹配,是则如符合打开条件则打开对应应用;当监听到第三系统广播时,常驻服务与外部的安卓设备建立连接,轮询读取端点数据,如端点数据符合要求则打开对应应用;当监听到第二系统广播时打开虚拟串口,如通过虚拟串口轮询读取到的串口文件中的串口数据符合要求则打开对应应用。

Description

一种POS设备工作的实现方法及装置
技术领域
本发明涉及信息安全领域,尤其涉及一种POS设备工作的实现方法及装置。
背景技术
POS(point of sale)设备是一种多功能终端,其安装在特约商户和受理网点并与计算机联成网络,为用户提供授权、消费、结算等服务的专用银行电子支付设备。现有技术中,POS设备使用固定工作模式(作为USB主机模式或USB配件模式)与外部设备连接进行通讯,致使其使用范围受限;且POS设备工作时需要手动打开应用,使用非常不便。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种POS设备工作的实现方法及装置。
第一方面,本发明实施例提供了一种POS设备工作的实现方法,包括:POS设备开机后启动常驻服务,所述常驻服务读取并加载预置的设备ID注册表和设备类型注册表,注册系统广播并开始监听,创建虚拟串口;
当所述常驻服务监听到第一系统广播时,执行以下操作:
步骤D1:所述常驻服务从所述第一系统广播中获取设备信息,根据所述设备信息判断所述设备ID注册表中是否有映射的应用包名,是则执行步骤D2,否则执行步骤D3;
步骤D2:所述常驻服务根据所述应用包名判断对应应用是否符合打开条件,是则打开所述对应应用,所述对应应用与外部设备建立连接开始进行通讯,所述常驻服务继续监听系统广播,否则结束本次操作,所述常驻服务继续监听系统广播;
步骤D3:所述常驻服务从所述第一系统广播中获取设备接口类型,根据所述设备信息和所述设备接口类型确定外部设备的设备类型,执行步骤D4;
步骤D4:所述常驻服务根据所述设备类型判断所述设备类型注册表中是否有映射的匹配条件和应用包名,是则如判断所述匹配条件符合要求,则根据所述应用包名打开对应应用,所述对应应用与外部设备建立连接开始进行通讯,所述常驻服务继续监听系统广播,否则结束本次操作,所述常驻服务继续监听系统广播;
当所述常驻服务监听到第三系统广播时,执行以下操作:
步骤B1:所述常驻服务与外部的安卓设备建立连接,轮询读取端点数据;
步骤B2:所述常驻服务从读取到的端点数据中获取认证信息和应用包名,判断所述认证信息是否有效,是则执行步骤B3,否则断开与所述安卓设备的连接,结束本次操作,所述常驻服务继续监听系统广播;
步骤B3:所述常驻服务根据所述应用包名判断对应应用是否符合打开条件,是则打开所述对应应用,断开与所述安卓设备的连接,所述对应应用与所述安卓设备建立连接开始通讯,所述常驻服务继续监听系统广播,否则断开与所述安卓设备的连接,结束本次操作,所述常驻服务继续监听系统广播;
当所述常驻服务监听到第二系统广播时,执行以下操作:
步骤C1:所述常驻服务打开虚拟串口,通过所述虚拟串口轮询读取串口文件中的串口数据,当在预设时间内读取到串口数据时从所述串口数据中获取认证信息和应用包名,判断所述认证信息是否有效,是则执行步骤C2,否则关闭所述虚拟串口,结束本次操作,所述常驻服务继续监听系统广播;
步骤C2:所述常驻服务根据所述应用包名判断对应应用是否符合打开条件,是则打开所述对应应用,关闭所述虚拟串口,所述对应应用与外部设备建立连接开始通讯,所述常驻服务继续监听系统广播,否则关闭所述虚拟串口,结束本次操作,所述常驻服务继续监听系统广播。
第二方面,本发明实施例又提供一种POS设备工作的实现装置,所述实现装置设置在POS设备中,所述POS设备开机后启动所述实现装置,所述实现装置包括:
读取注册创建模块,用于读取并加载预置的设备ID注册表和设备类型注册表,注册系统广播并开始监听,创建虚拟串口;
第一获取判断模块,用于当所述读取注册创建模块监听到第一系统广播时从所述第一系统广播中获取设备信息,根据所述设备信息判断所述设备ID注册表中是否有映射的应用包名,是则触发第一判断打开模块,否则触发获取确定模块;
所述第一判断打开模块,用于根据所述应用包名判断对应应用是否符合打开条件,是则打开所述对应应用,所述对应应用与外部设备建立连接开始进行通讯,触发所述读取注册创建模块继续监听系统广播,否则结束本次操作,触发所述读取注册创建模块继续监听系统广播;
所述获取确定模块,用于从所述第一系统广播中获取设备接口类型,根据所述设备信息和所述设备接口类型确定外部设备的设备类型;
第二判断打开模块,用于根据所述设备类型判断所述设备类型注册表中是否有映射的匹配条件和应用包名,是则如判断所述匹配条件符合要求,则根据所述应用包名打开对应应用,所述对应应用与外部设备建立连接开始进行通讯,触发所述读取注册创建模块继续监听系统广播,否则结束本次操作,触发所述读取注册创建模块继续监听系统广播;
建立读取模块,用于当所述读取注册创建模块监听到第三系统广播时,所述装置与外部的安卓设备建立连接,轮询读取端点数据;
第二获取判断模块,用于从读取到的端点数据中获取认证信息和应用包名,判断所述认证信息是否有效,是则执行步骤S8,否则断开与所述安卓设备的连接,结束本次操作,触发所述读取注册创建模块继续监听系统广播;
第三判断打开模块,用于根据所述应用包名判断对应应用是否符合打开条件,是则打开所述对应应用,断开与所述安卓设备的连接,所述对应应用与所述安卓设备建立连接开始通讯,触发所述读取注册创建模块继续监听系统广播,否则断开与所述安卓设备的连接,结束本次操作,触发所述读取注册创建模块继续监听系统广播;
第三获取判断模块,用于当所述读取注册创建模块监听到第二系统广播时,打开虚拟串口,通过所述虚拟串口轮询读取串口文件中的串口数据,当在预设时间内读取到串口数据时从所述串口数据中获取认证信息和应用包名,判断所述认证信息是否有效,是则触发第四判断打开模块,否则关闭所述虚拟串口,结束本次操作,触发所述读取注册创建模块继续监听系统广播;
所述第四判断打开模块,用于根据所述应用包名判断对应应用是否符合打开条件,是则打开所述对应应用,关闭所述虚拟串口,所述对应应用与外部设备建立连接开始通讯,触发所述读取注册创建模块继续监听系统广播,否则关闭所述虚拟串口,结束本次操作,触发所述读取注册创建模块继续监听系统广播。
第三方面,本发明实施例又提供一种电子设备,电子设备包括至少一个处理器、存储器及存储在存储器上并可被至少一个处理器执行的指令,至少一个处理器执行前述的POS设备工作的实现方法。
第四方面,本发明实施例又提供一种计算机可读存储介质,计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行前述的POS设备工作的实现方法。
第五方面,本发明实施例又提供一种芯片系统,包括芯片,芯片与存储器耦合,用于执行存储器中存储的计算机程序,以执行前述的POS设备工作的实现方法。
本发明与现有技术相比,具有以下优点:本发明技术方案中可根据连接的不同外部设备调整POS设备的工作模式,扩大POS设备的使用范围(POS设备的工作模式既可以是USB主机模式(如作为主机使用),也可以是USB配件模式);POS设备能够根据连接的不同外部设备自动打开POS设备内部已安装的对应于设备类型的应用,提高应用启动效率,使用便捷。
附图说明
图1为本发明实施例一提供的一种POS设备工作的实现方法的流程图;
图2为本发明实施例一中步骤106的实现流程图;
图3至图5为本发明实施例二提供的一种POS设备工作的实现方法的流程图。
具体实施方式
本申请提出了一种POS设备工作的实现方法及装置,下面结合附图,对本申请具体实施方式进行详细说明。实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明实施方式作进一步地详细描述。
实施例一
本发明实施例一提供了一种POS设备工作的实现方法,如图1所示包括:
步骤101:POS设备开机后启动常驻服务,常驻服务读取并加载预置的设备ID注册表和设备类型注册表,注册系统广播并开始监听,创建虚拟串口;
当常驻服务监听到第一系统广播时执行步骤102,当常驻服务监听到第三系统广播时执行步骤107,当常驻服务监听到第二系统广播时执行步骤110;
在本实施例中,常驻服务通过系统广播监听外部设备的插入状态,设备ID注册表和设备类型注册表预置在POS设备系统中;
其中,设备ID注册表记录设备信息和应用包名映射关系,设备信息包括设备厂商名称、设备PID、设备VID;设备类型注册表记录设备类型、匹配条件和应用包名映射关系,设备类型包括:U盘、读卡器、安卓设备、串口设备;
在本实施例中,系统广播包括:第一系统广播ACTION_USB_DEVICE_ATTACHED(USB设备插入)、第二系统广播ACTION_USB_STATE(USB连接线状态的改变)、第三系统广播ACTION_USB_ACCESSORY_ATTACHED(安卓USB配件设备插入);其中,如系统广播为第一系统广播则POS设备工作模式为USB主机模式,如系统广播为第三系统广播则POS设备工作模式为USB配件模式,POS设备工作模式默认为USB主机模式;
在本实施例中,外部设备为安卓设备时,存在两种情况,如下:
POS设备接收到第三系统广播情况:外部的安卓设备(即安卓USB配件设备)的工作模式为USB主机模式,当外部的安卓设备向POS设备建立连接后,如 POS设备未处于USB配件模式,则外部的安卓设备发送符合AOA协议的标准控制请求包数据给POS设备,POS设备接收到标准控制请求包数据后,POS设备系统将POS设备的工作模式由USB主机模式切换为USB配件模式,POS设备的系统发出第三系统广播,常驻服务监听到第三系统广播后执行步骤107;
POS设备接收到第一系统广播情况:POS设备充当主机(即POS设备的工作模式为USB主机模式),POS设备与外部的安卓设备建立连接后,如果外部的安卓设备未处于USB配件模式,则POS设备发送符合AOA协议的标准控制请求包数据,外部的安卓设备接收到标准控制请求包数据后,外部的安卓设备系统将工作模式由USB主机模式切换为USB配件模式,外部的安卓设备切换过程中,POS设备的系统将会发出USB配件的逻辑拔插操作广播,POS设备再次发出第一系统广播,常驻服务监听到第一系统广播后执行步骤102;
步骤102:常驻服务从第一系统广播中获取设备信息,根据设备信息判断设备ID注册表是否有映射的应用包名,是则执行步骤103,否则执行步骤104;
步骤103:常驻服务根据应用包名判断对应应用是否符合打开条件,是则打开对应应用,对应应用与外部设备建立连接开始进行通讯,常驻服务继续监听系统广播,否则结束本次操作,常驻服务继续监听系统广播;
具体的,在本实施例中,步骤103中的常驻服务根据应用包名判断对应应用是否符合打开条件包括:
步骤103-1:常驻服务根据应用包名判断已安装的应用列表中是否存在对应应用,是则执行步骤103-2,否则对应应用不符合打开条件;
步骤103-2:常驻服务判断对应应用是否已运行,是则对应应用不符合打开条件,否则对应应用符合打开条件;
步骤104:常驻服务从第一系统广播中获取设备接口类型,根据设备信息和设备接口类型确定外部设备的设备类型,执行步骤105;
步骤105:常驻服务根据设备类型判断设备类型注册表中是否有映射的匹配条件和应用包名,是则执行步骤106,否则结束本次操作,常驻服务继续监听系统广播;
步骤106:如判断匹配条件符合要求,则常驻服务根据应用包名打开对应应用,对应应用与外部设备建立连接开始进行通讯,常驻服务继续监听系统广播;
具体的,在本实施例中,如图2所示,步骤106包括:
如外部设备的设备类型为第一类型设备则执行步骤A1,如外部设备的设备类型为第二类型设备则执行步骤K1,如外部设备的设备类型为第三类型设备则执行步骤L1;
具体的,第一类型设备为U盘、读卡器、鼠标、键盘、打印机等,第二类型设备为安卓设备,第三类型为串口设备或PC设备;
步骤A1:常驻服务判断匹配条件是否符合要求,是则执行步骤A2,否则结束本次操作,常驻服务继续监听系统广播;
具体的,在本实施例中,如第一类型设备为U盘、鼠标、键盘、打印机,步骤A1包括:常驻服务判断匹配条件中的根目录路径下是否存在应用文件,是则执行步骤A2,否则结束本次操作,常驻服务继续监听系统广播;
如第一类型设备为读卡器,则步骤A1包括:常驻服务与读卡器建立连接,向读卡器发送认证指令,接收读卡器返回的认证响应,判断认证响应中是否包含认证成功信息,是则执行步骤A2,否则断开与读卡器的连接,结束本次操作,常驻服务继续监听系统广播;
步骤A2:常驻服务根据应用包名判断对应应用是否符合打开条件,是则打开对应应用,对应应用与第一类型设备建立连接开始通讯,常驻服务继续监听系统广播,否则结束本次操作,常驻服务继续监听系统广播;
相应的,第一类型设备为读卡器则步骤A2包括:常驻服务根据应用包名判断对应应用是否符合打开条件,是则打开对应应用,断开与读卡器的连接,对应应用与读卡器建立连接开始通讯,常驻服务继续监听系统广播,否则断开与读卡器的连接,结束本次操作,常驻服务继续监听系统广播;
步骤K1:常驻服务判断设备信息中的设备PID是否为第一预设值,是则执行步骤K4,否则执行步骤K2;
在本实施例中,第一预设值为0x2D00或0x2D01;
步骤K2:常驻服务与外部的第二类型设备建立连接,通过系统加载驱动,通过驱动获取AOA协议的标准请求包数据,将标准请求包数据发送给连接的第二类型设备,执行步骤K3;
在本实施例中,认证信息包括厂商名称、设备型号、设备描述信息、系统版本号、URL、应用列表;
在本实施例中,第二类型设备接收到标准请求包数据后,第二类型设备将自身的工作模式由USB主机模式切换为USB配件模式,切换过程中第二类型设备的系统进行一次USB的逻辑拔插操作,同时POS设备的系统发出逻辑拔广播和第一系统广播;具体的,第二类型设备为安卓设备;
步骤K3:常驻服务断开与第二类型设备的连接,结束本次操作,常驻服务继续监听系统广播;
步骤K4:常驻服务与外部的第二类型设备建立连接,轮询读取端点数据,从读取到的端点数据中获取认证信息和应用包名,执行步骤K5;
步骤K5:常驻服务判断认证信息是否有效,是则执行步骤K6,否则断开与第二类型设备的连接,结束本次操作,常驻服务继续监听系统广播;
步骤K6:常驻服务根据应用包名判断对应应用是否符合打开条件,是则执行步骤K7,否则断开与第二类型设备的连接,结束本次操作,常驻服务继续监听系统广播;
步骤K7:常驻服务打开对应应用,断开与第二类型设备的连接,对应应用与第二类型设备建立连接开始进行通讯,常驻服务继续监听系统广播;
步骤L1:常驻服务与第三类型设备建立连接,并轮询读取串口文件中的数据;
具体的,在本实施例中,POS设备与外部的第三类型设备建立连接之后,外接的第三类型设备将认证信息和需打开应用的应用包名发送到POS设备的串口文件中;
步骤L2:常驻服务从读取到的数据中获取认证信息和应用包名,判断认证信息是否有效,是则执行步骤L3,否则断开与第三类型设备的连接,结束本次操作,常驻服务继续监听系统广播;
具体的,在本实施例中,判断认证信息是否有效包括:判断认证信息是否为有效证书信息,是则有效,否则无效;
步骤L3:常驻服务根据应用包名判断对应应用是否符合打开条件,是则打开对应应用,断开与第三类型设备的连接,对应应用与第三类型设备建立连接开始通讯,常驻服务继续监听系统广播,否则断开与第三类型设备的连接,结束本次操作,常驻服务继续监听系统广播;
步骤107:常驻服务与外部的安卓设备建立连接,轮询读取端点数据;
步骤108:常驻服务从读取到的端点数据中获取认证信息和应用包名,判断认证信息是否有效,是则执行步骤109,否则断开与安卓设备的连接,结束本次操作,常驻服务继续监听系统广播;
步骤109:常驻服务根据应用包名判断对应应用是否符合打开条件,是则打开对应应用,断开与安卓设备的连接,对应应用与安卓设备建立连接开始通讯,常驻服务继续监听系统广播,否则断开与安卓设备的连接,结束本次操作,常驻服务继续监听系统广播;
步骤110:常驻服务打开虚拟串口,通过虚拟串口轮询读取串口文件中的串口数据,当在预设时间内读取到串口数据时从读取到的串口数据中获取认证信息和应用包名,判断认证信息是否有效,是则执行步骤111,否则关闭虚拟串口,结束本次操作,常驻服务继续监听系统广播;
在本实施例中,判断认证信息是否有效包括:判断认证信息是否为有效证书信息,是则有效,否则无效;
可选的,本实施例中步骤110中如在预设时间内未读到串口数据则常驻服务关闭虚拟串口,结束本次操作,继续监听系统广播;
步骤111:常驻服务根据应用包名判断对应应用是否符合打开条件,是则打开对应应用,关闭虚拟串口,对应应用与外部设备建立连接开始通讯,常驻服务继续监听系统广播,否则关闭虚拟串口,结束本次操作,常驻服务继续监听系统广播。
本发明技术方案中可根据连接的不同外部设备调整POS设备的工作模式,扩大POS设备的使用范围(POS设备的工作模式既可以是USB主机模式(如作为主机使用),也可以是USB配件模式);POS设备能够根据连接的不同外部设备自动打开POS设备内部已安装的对应于设备类型的应用,提高应用启动效率,使用便捷。
实施例二
本发明实施例二提供一种POS设备工作的实现方法,如图3至图5所示,包括:POS设备开机后启动常驻服务,常驻服务执行以下步骤:
步骤201:常驻服务读取并加载预置的设备ID注册表并设置为支持修改,读取并加载预置的设备类型注册表并设置为支持修改;
其中,POS设备内部的驱动与应用设置为对应关系,POS设备与外部设备进行物理连接后系统产生不同广播;
在本实施例中,设备ID注册表和设备类型注册表预置在POS设备系统中,设备ID注册表记录设备信息和应用包名的映射关系,设备信息包括设备厂商名称、设备PID、设备VID;设备类型注册表记录设备类型、匹配条件和应用包名的映射关系,设备类型包括:U盘或鼠标键盘或打印机、读卡器、串口设备或PC设备、安卓设备;
设备ID注册表和设备类型注册表设置为支持修改后续可对其记录的内容进行修改和填充;
步骤202:常驻服务注册系统广播并开始监听,创建虚拟串口;
在本实施例中,常驻服务通过系统广播监听外部设备的插入状态,系统广播包括:第一系统广播ACTION_USB_DEVICE_ATTACHED(USB设备插入)、第二系统广播ACTION_USB_STATE(USB连接线状态的改变)、第三系统广播ACTION_USB_ACCESSORY_ATTACHED(安卓USB配件设备插入);其中,如监听到第一系统广播则POS设备工作模式为USB主机模式,POS设备充当主机;如监听到第三系统广播则POS设备工作模式为USB配件模式,所连接的安卓USB配件设备充当主机,POS设备的工作模式默认为USB主机模式;
例如,在本实施例中,注册系统广播具体实现过程如下:
IntentFilter filter=new IntentFilter();
filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
filter.addAction(UsbManager.ACTION_USB_ACCESSORY_ATTACHED);
filter.addAction(ACTION_USB_STATE);
mContext.registerReceiver(usbDeviceReceiver, filter);
步骤203:当常驻服务监听到系统广播时,判断系统广播的类型,如为第一系统广播则执行步骤204,如为第三系统广播则执行步骤229,如为第二系统广播则执行步骤234;
具体的,在本实施例中,常驻服务通过intent.getAction() 获取系统广播,如系统广播为ACTION_USB_DEVICE_ATTACHED则系统广播的类型为第一系统广播,如系统广播为ACTION_USB_ACCESSORY_ATTACHED则系统广播的类型为第三系统广播,如系统广播为ACTION_USB_STATE则系统广播的类型为第二系统广播;
例如第三系统广播的具体为:UsbAccessory[mManufacturer=vivo, mModel=V2073A, mDescription=PD2073, mVersion=4.09, mUri=http://www.ftsafe.com,mSerialNumberReader=android.hardware.usb.IUsbSerialReader$Stub$Proxy@38cc9bc],其中,mManufacturer为厂商名称 mModel为设备型号 mDescription为设备名称;
在本实施例中,外部设备为安卓设备时,存在两种情况,如下:
POS设备接收到第三系统广播情况:外部的安卓设备(即安卓USB配件设备)的工作模式为USB主机模式,当外部的安卓设备向POS设备建立连接后,如 POS设备未处于USB配件模式,则外部的安卓设备发送符合AOA协议的标准控制请求包数据给POS设备,POS设备接收到标准控制请求包数据后,POS设备系统将POS设备的工作模式由USB主机模式切换为USB配件模式,POS设备的系统发出第三系统广播,常驻服务监听到第三系统广播后执行步骤232;
POS设备接收到第一系统广播情况:POS设备充当主机(即POS设备的工作模式为USB主机模式),POS设备与外部的安卓设备建立连接后,如果外部的安卓设备未处于USB配件模式,则POS设备发送符合AOA协议的标准控制请求包数据,外部的安卓设备接收到标准控制请求包数据后,外部的安卓设备系统将工作模式由USB主机模式切换为USB配件模式,外部的安卓设备切换过程中,POS设备的系统将会发出USB配件的逻辑拔插操作广播,POS设备再次发出第一系统广播,常驻服务监听到第一系统广播后执行步骤204;
步骤204:常驻服务从第一系统广播中获取设备信息;
具体的,在本实施例中,步骤204具体为:常驻服务从第一系统广播中获取设备对象,获取设备对象中的设备信息;
其中,设备信息包括:mVendorId即设备VID、mProductId即设备PID、mManufacturerName即厂商名称、mProductName即设备名称;
例如,常驻服务从第一系统广播中获取设备对象的具体实现过程为:UsbDeviceusbDevice=intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
获取设备对象中的设备信息的具体实现过程为:
获取设备名称的具体实现过程为:usbDevice.getProductName();
获取设备PID的具体实现过程为:usbDevice.getProductId();
获取设备VID的具体实现过程为:usbDevice.getVendorId();
如插入的设备为U盘则第一系统广播数据为:UsbDevice[mName=/dev/bus/usb/003/002,mVendorId=13621,mProductId=25479,mClass=0,mSubclass=0,mProtocol=0,mManufacturerName=aigo,mProductName=USBDISK,mVersion=0.02,mSerialNumberReader=android.hardware.usb.IUsbSerialReader$Stub$Proxy@7b1bb9d, mHasAudioPlayback=false, mHasAudioCapture=false, mHasMidi=false, mHasVideoCapture=false,mHasVideoPlayback=false, mConfigurations=[UsbConfiguration[mId=1,mName=null,mAttributes=128,mMaxPower=100,mInterfaces=[UsbInterface[mId=0,mAlternateSetting=0,mName=null,mClass=8,mSubclass=6,mProtocol=80,mEndpoints=[UsbEndpoint[mAddress=129,mAttributes=2,mMaxPacketSize=1024,mInterval=0]UsbEndpoint[mAddress=2,mAttributes=2,mMaxPacketSize=1024,mInterval=0]]]];
如插入的设备为安卓手机则第一系统广播数据为:UsbDevice[mName=/dev/bus/usb/002/002,mVendorId=11669,mProductId=24595,mClass=0,mSubclass=0,mProtocol=0,mManufacturerName=vivo,mProductName=iQOOZ3,mVersion=4.19,mSerialNumberReader=android.hardware.usb.IUsbSerialReader$Stub$Proxy@a733379,mHasAudioPlayback=false, mHasAudioCapture=false, mHasMidi=false,mHasVideoCapture=false, mHasVideoPlayback=false, mConfigurations=[UsbConfiguration[mId=1,mName=mtp_mass_storage_adb,mAttributes=128,mMaxPower=250,mInterfaces=[UsbInterface[mId=0,mAlternateSetting=0,mName=MTP,mClass=255,mSubclass=255,mProtocol=0,mEndpoints=[UsbEndpoint[mAddress=129,mAttributes=2,mMaxPacketSize=512,mInterval=0]UsbEndpoint[mAddress=1,mAttributes=2,mMaxPacketSize=512,mInterval=0]UsbEndpoint[mAddress=130,mAttributes=3,mMaxPacketSize=28,mInterval=6]]UsbInterface[mId=1,mAlternateSetting=0,mName=MassStorage,mClass=8,mSubclass=6,mProtocol=80,mEndpoints=[UsbEndpoint[mAddress=131,mAttributes=2,mMaxPacketSize=512,mInterval=0]UsbEndpoint[mAddress=2,mAttributes=2,mMaxPacketSize=512,mInterval=1]]UsbInterface[mId=2,mAlternateSetting=0,mName=ADBInterface,mClass=255,mSubclass=66,mProtocol=1,mEndpoints=[UsbEndpoint[mAddress=3,mAttributes=2,mMaxPacketSize=512,mInterval=0]UsbEndpoint[mAddress=132,mAttributes=2,mMaxPacketSize=512,mInterval=0]]]];
步骤205:常驻服务根据设备信息判断设备ID注册表中是否有映射的应用包名,是则执行步骤206,否则执行步骤208;
步骤206:常驻服务获取当前已安装的应用列表,根据应用包名判断应用列表中是否存在对应应用,是则执行步骤207,否则结束本次操作,常驻服务继续监听系统广播,返回步骤203;
步骤207:常驻服务检查对应应用是否在前台运行,是则结束本次操作,常驻服务继续监听系统广播,返回步骤203,否则打开该对应应用,对应应用与外部设备建立连接开始通讯,常驻服务继续监听系统广播,返回步骤203;
步骤208:常驻服务从第一系统广播中获取设备接口类型;
具体的,在本实施例中,常驻服务从第一系统广播的设备对象中获取设备接口类型;
具体为:常驻服务根据从第一系统广播中获取设备对象,对设备对象进行枚举设备接口类,获取设备支持的接口类型,具体实现过程如下:
for (int i = 0; i < usbDevice.getInterfaceCount();i++) {
UsbInterface usbInterface=usbDevice.getInterface(i);
int class = usbInterface.getInterfaceClass()//获取设备支持的接口类型;
};其中,UsbInterface为设备接口类、class为设备类型;
步骤209:常驻服务根据设备信息和设备接口类型确定外部设备的设备类型,根据设备类型判断设备类型注册表中是否有映射的匹配条件和应用包名,是则执行步骤210,否则结束本次操作,常驻服务继续监听系统广播,返回步骤203;
具体的,在本实施例中,外部设备的设备类型包括:3鼠标、键盘、7打印机、8U盘、11读卡器、16安卓设备、252串口设备;
步骤210:如外部设备的设备类型为U盘则执行步骤211,如外部设备的设备类型为读卡器则执行步骤214,如外部设备的设备类型为安卓设备则执行步骤218,如外部设备的设备类型为串口设备则执行步骤225;
在本实施例中,如外部设备的设备类型为鼠标或键盘或打印机的实现过程与U盘的实现过程类似,外部设备的设备类型为PC设备的实现过程与串口设备的实现过程类似,在此不再赘述;
步骤211:常驻服务从U盘的匹配条件中获取根目录路径,判断根目录路径下是否存在应用文件,是则执行步骤212,否则结束本次操作,常驻服务继续监听系统广播,返回步骤203;
例如,在本实施例中,获取的根目录路径为FT/OS,应用文件为systemUpdate.ota;
步骤212:常驻服务获取当前已安装的应用列表,根据应用包名判断应用列表中是否存在对应应用,是则执行步骤213,否则结束本次操作,常驻服务继续监听系统广播,返回步骤203;
步骤213:常驻服务判断对应应用是否在前台运行,是则结束本次操作,常驻服务继续监听系统广播,返回步骤203,否则打开对应应用,对应应用与读卡器建立连接开始进行通讯,常驻服务继续监听系统广播,返回步骤203;
步骤214:常驻服务与读卡器建立连接,组建认证指令并发送给读卡器;
步骤215:常驻服务接收读卡器返回的认证响应,判断认证响应中是否包含认证成功信息,是则执行步骤216,否则断开与读卡器建立连接,结束本次操作,常驻服务继续监听系统广播,返回步骤203;
步骤216:常驻服务获取当前已安装的应用列表,根据应用包名判断应用列表中是否存在对应应用,是则执行步骤217,否则断开与读卡器的连接,结束本次操作,常驻服务继续监听系统广播,返回步骤203;
步骤217:常驻服务判断对应应用是否在前台运行,是则断开与读卡器的连接,结束本次操作,常驻服务继续监听系统广播,返回步骤203,否则打开对应应用,断开与读卡器的连接,对应应用与读卡器建立连接开始进行通讯,常驻服务继续监听系统广播,返回步骤203;
步骤218:常驻服务判断设备信息中的设备PID是否为第一预设值,是则执行步骤221,否则执行步骤219;
例如,本实施例中的第一预设值为0x2D00或0x2D01;
步骤219:常驻服务与外部的安卓设备建立连接,通过系统加载驱动,通过驱动获取AOA协议的标准请求包数据,将AOA协议的标准请求包数据发送给连接的安卓设备,执行步骤220;
具体的,认证信息包括:厂商名称、设备型号、设备描述信息、系统版本号、URL、应用列表;
例如,厂商名称String MANUFACTURER=Build.MANUFACTURER;
设备型号String MODEL=Build.MODEL;
设备描述信息String DESCRIPTION=Build.PRODUCT;
系统版本号String VERSION="4.09";
String URL="http://www.ftsafe.com";
应用列表String SERIAL=Build.SERIAL;
在本实施例中,外部的安卓设备接收到认证信息后,外部的安卓设备的系统将自身的工作模块从主机模式切换为配件模式,切换过程中安卓设备的系统进行一次USB的逻辑拔插操作,同时POS设备的系统发出逻辑拔广播和第一系统广播;
步骤220:常驻服务断开与安卓设备的连接,结束本次操作,常驻服务继续监听系统广播,返回步骤203;
步骤221:常驻服务与外部的安卓设备建立连接,轮询读取端点数据;
例如,常驻服务与外部的安卓设备建立连接后,常驻服务轮询读取端点数据的具体实现过程如下:
UsbManager manager=(UsbManager) mContext.getSystemService(Context.USB_SERVICE);
UsbDeviceConnection connection=manager.openDevice(device);
可选的,常驻服务每300毫秒读取一次,轮询读取端点数据的时长最多为3秒;
步骤222:常驻服务从读取到的端点数据中获取认证信息和应用包名,判断认证信息是否有效,是则执行步骤223,否则断开与安卓设备的连接,结束本次操作,常驻服务继续监听系统广播,返回步骤203;
步骤223:常驻服务根据应用包名判断已安装的应用列表中是否存在对应应用,是则执行步骤224,否则断开与安卓设备的连接,结束本次操作,常驻服务继续监听系统广播,返回步骤203;
步骤224:常驻服务判断对应应用是否在前台运行,是则断开与安卓设备的连接,结束本次操作,常驻服务继续监听系统广播,返回步骤203,否则打开该对应应用,断开与安卓设备的连接,对应应用与安卓设备建立连接开始进行通讯,常驻服务继续监听系统广播,返回步骤203;
步骤225:常驻服务与外部的串口设备建立连接,并轮询读取串口文件中的数据;
具体的,在本实施例中,常驻服务与外部的串口设备建立连接之后,串口设备将认证信息和需打开应用的应用包名发送到POS设备的串口文件中;
步骤226:常驻服务从读取到的数据中获取认证信息和应用包名,判断认证信息是否有效,是则执行步骤227,否则断开与串口设备的连接,结束本次操作,常驻服务继续监听系统广播,返回步骤203;
具体的,在本实施例中,判断认证信息是否有效包括:判断认证信息是否为有效证书信息,是则有效,否则无效;
步骤227:常驻服务根据应用包名判断已安装的应用列表中是否存在对应应用,是则执行步骤228,否则断开与串口设备的连接,结束本次操作,常驻服务继续监听系统广播,返回步骤203;
步骤228:常驻服务判断对应应用是否在前台运行,是则断开与串口设备的连接,结束本次操作,常驻服务继续监听系统广播,返回步骤203,否则打开对应应用,断开与串口设备的连接,对应应用与串口设备建立连接开始进行通讯,常驻服务继续监听系统广播,返回步骤203;
步骤229:常驻服务与外部的安卓设备建立连接,轮询读取端点数据;
步骤230:常驻服务从读取到的端点数据中获取认证信息和应用包名,判断认证信息是否有效,是则执行步骤231,否则断开与安卓设备的连接,结束本次操作,常驻服务继续监听系统广播,返回步骤203;
可选的,POS设备每300毫秒读取一次,最多轮询读取端点数据3秒;
具体的,在本实施例中,常驻服务轮询读取端点数据包括:
1)常驻服务给安卓设备发送带帧号的查询指令;
例如,本实施例中的查询指令为:55AA040100000000CC33,其中55AA为协议头,04为查询指令类型,01为帧号,0000为数据长度,00为校验位,00为错误码,CC33为协议尾;
2)安卓设备收到查询指令后给常驻服务返回对应帧号的响应数据;
例如,该步骤中的响应数据为:55AA01000013636F6D2E6674736166652E736D6172747061797E00CC33,其中55AA为协议头,01为帧号,00为数据指令类型,0013为数据长度,636F6D2E6674736166652E736D617274706179为数据(认证信息和应用包名),7E为校验位,00为错误码,CC33为协议尾;
步骤231:常驻服务根据应用包名判断已安装的应用列表中是否存在对应应用,是则执行步骤232,否则断开与安卓设备的连接,结束本次操作,常驻服务继续监听系统广播,返回步骤203;
步骤232:常驻服务判断对应应用是否在前台运行,是则断开与安卓设备的连接,结束本次操作,常驻服务继续监听系统广播,返回步骤203,否则执行步骤233;
步骤233:常驻服务打开对应应用,断开与安卓设备的连接,对应应用与安卓设备建立连接开始进行通讯,常驻服务继续监听系统广播,返回步骤203;
步骤234:常驻服务打开虚拟串口,通过虚拟串口轮询读取串口文件中的串口数据,当在预设时间内读取到串口数据时从读取到的串口数据中获取认证信息和应用包名,判断认证信息是否有效,是则执行步骤235,否则关闭虚拟串口,结束本次操作,常驻服务继续监听系统广播,返回步骤203;
在本实施例中,通过虚拟串口轮询读取串口文件中的数据的实现过程与步骤228中读取端点数据的过程一致,在此不再赘述;
可选的,本实施例中步骤234中如在预设时间内未读到串口数据则常驻服务关闭虚拟串口,结束本次操作,常驻服务继续监听系统广播,返回步骤203;
优选的,预设时间为3秒;
步骤235:常驻服务根据应用包名判断已安装的应用列表中是否存在对应应用,是则执行步骤236,否则关闭虚拟串口,结束本次操作,常驻服务继续监听系统广播,返回步骤203;
步骤236:常驻服务判断对应应用是否在前台运行,是则关闭虚拟串口,结束本次操作,常驻服务继续监听系统广播,返回步骤203,否则打开对应应用,关闭虚拟串口,对应应用与串口设备建立连接开始进行通讯,常驻服务继续监听系统广播,返回步骤203。
本实施例中可根据连接的不同外部设备调整POS设备的工作模式,扩大POS设备的使用范围(POS设备既可作为USB主机模式(如作为主机使用),也可作为USB配件模式);POS设备能够根据连接的不同外部设备自动打开POS设备内部已安装的对应于设备类型的应用,提高应用启动效率,使用便捷。
实施例三
本发明实施例三提供一种POS设备工作的实现装置,其设置在POS设备中,POS设备开机后启动实现装置,本实施例的实现装置包括:
读取注册创建模块,用于读取并加载预置的设备ID注册表和设备类型注册表,注册系统广播并开始监听,创建虚拟串口;
第一获取判断模块,用于当读取注册创建模块监听到第一系统广播时从第一系统广播中获取设备信息,根据设备信息判断设备ID注册表中是否有映射的应用包名,是则触发第一判断打开模块,否则触发获取确定模块;
第一判断打开模块,用于根据应用包名判断对应应用是否符合打开条件,是则打开对应应用,对应应用与外部设备建立连接开始进行通讯,触发读取注册创建模块继续监听系统广播,否则结束本次操作,触发读取注册创建模块继续监听系统广播;
获取确定模块,用于从第一系统广播中获取设备接口类型,根据设备信息和设备接口类型确定外部设备的设备类型;
第二判断打开模块,用于根据设备类型判断设备类型注册表中是否有映射的匹配条件和应用包名,是则如判断匹配条件符合要求,则根据应用包名打开对应应用,对应应用与外部设备建立连接开始进行通讯,触发读取注册创建模块继续监听系统广播,否则结束本次操作,触发读取注册创建模块继续监听系统广播;
建立读取模块,用于当读取注册创建模块监听到第三系统广播时,装置与外部的安卓设备建立连接,轮询读取端点数据;
第二获取判断模块,用于从读取到的端点数据中获取认证信息和应用包名,判断认证信息是否有效,是则执行步骤S8,否则断开与安卓设备的连接,结束本次操作,触发读取注册创建模块继续监听系统广播;
第三判断打开模块,用于根据应用包名判断对应应用是否符合打开条件,是则打开对应应用,断开与安卓设备的连接,对应应用与安卓设备建立连接开始通讯,触发读取注册创建模块继续监听系统广播,否则断开与安卓设备的连接,结束本次操作,触发读取注册创建模块继续监听系统广播;
第三获取判断模块,用于当读取注册创建模块监听到第二系统广播时,打开虚拟串口,通过虚拟串口轮询读取串口文件中的串口数据,当在预设时间内读取到串口数据时从读取到的串口数据中获取认证信息和应用包名,判断认证信息是否有效,是则触发第四判断打开模块,否则关闭虚拟串口,结束本次操作,触发读取注册创建模块继续监听系统广播;
第四判断打开模块,用于根据应用包名判断对应应用是否符合打开条件,是则打开对应应用,关闭虚拟串口,对应应用与外部设备建立连接开始通讯,触发读取注册创建模块继续监听系统广播,否则关闭虚拟串口,结束本次操作,触发读取注册创建模块继续监听系统广播。
在本实施例中,第一判断打开模块、第二判断打开模块和第三判断打开模块,用于根据应用包名判断对应应用是否符合打开条件,包括:根据应用包名判断已安装的应用列表中是否存在对应应用,如存在则判断对应应用是否已运行,是则对应应用不符合打开条件,否则对应应用符合打开条件,如不存在则对应应用不符合打开条件。
可选的,第二判断打开模块,如判断匹配条件符合要求,则根据应用包名打开对应应用,包括:当外部设备的设备类型如为第一类型设备时,判断匹配条件是否符合要求,如符合则根据应用包名判断对应应用是否符合打开条件,是则打开对应应用,对应应用与第一类型设备建立连接开始通讯,触发读取注册创建模块继续监听系统广播,否则结束本次操作,常驻服务继续监听系统广播;如不符合则结束本次操作,触发读取注册创建模块继续监听系统广播。
进一步地,本实施例中的第二判断打开模块,判断匹配条件是否符合要求,具体为:当第一类型设备为U盘或鼠标或键盘或打印机时,判断匹配条件中的根目录路径下是否存在应用文件,是则符合要求,否则不符合要求。
进一步地,本实施例中的第二判断打开模块具体用于当第一类型设备为读卡器时与读卡器建立连接,向读卡器发送认证指令,接收读卡器返回的认证响应,判断认证响应中是否包含认证成功信息,如包含则根据应用包名判断对应应用是否符合打开条件,是则打开对应应用,断开与读卡器的连接,对应应用与读卡器建立连接开始通讯,触发读取注册创建模块继续监听系统广播,否则断开与读卡器的连接,结束本次操作,触发读取注册创建模块继续监听系统广播,如不包含则断开与读卡器的连接,结束本次操作,触发读取注册创建模块继续监听系统广播。
可选的,在本实施例中,第二判断打开模块,包括:
第一判断单元,用于当外部设备的设备类型如为第二类型设备时,判断设备信息中的设备PID是否为第一预设值,是则触发建立获取单元,否则触发建立发送单元;
具体的,第二类型设备为安卓设备,
建立发送单元,用于与外部的安卓设备建立连接,通过系统加载驱动,通过驱动获取AOA协议的标准请求包数据,将AOA协议的标准请求包数据发送给安卓设备;
断开单元,用于断开与安卓设备的连接,结束本次操作,触发读取注册创建模块继续监听系统广播;
建立获取单元,用于与外部的安卓设备建立连接,轮询读取端点数据,从读取到的端点数据中获取认证信息和应用包名;
第二判断单元,用于判断认证信息是否有效,是则触发第三判断单元,否则触发断开单元;
第三判断单元,用于根据应用包名判断对应应用是否符合打开条件,是则触发打开断开建立单元,否则触发断开单元;
打开断开建立单元,用于打开对应应用,断开与安卓设备的连接,对应应用与安卓设备建立连接开始通讯,触发读取注册创建模块继续监听系统广播。
可选的,第二判断打开模块,如判断匹配条件符合要求,则根据应用包名打开对应应用,包括:当外部设备的设备类型如为第三类型设备时,与外部的第三类型设备建立连接,并轮询读取串口文件中的数据,从读取到的数据中获取认证信息和应用包名,判断认证信息是否有效,如有效则根据应用包名判断对应应用是否符合打开条件,是则打开对应应用,断开与第三类型设备的连接,对应应用与第三类型设备建立连接开始通讯,触发读取注册创建模块继续监听系统广播,否则断开与第三类型设备的连接,结束本次操作,触发读取注册创建模块继续监听系统广播,如无效则断开与第三类型设备的连接,结束本次操作,触发读取注册创建模块继续监听系统广播;
第三类型设备为串口设备或PC设备。
具体的,在本实施例中,第二获取判断模块中的判断认证信息是否有效包括:判断认证信息是否为有效证书信息,是则有效,否则无效。
可选的,本申请的实施例还提供了一种电子设备,电子设备包括至少一个处理器、存储器及存储在该存储器上并可被至少一个处理器执行的指令,至少一个处理器执行该指令以实现上述实施例中的POS设备工作的实现方法。该电子设备是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定;该芯片与存储器耦合,用于执行存储器中存储的计算机程序,以执行上述实施例中公开的POS设备工作的实现方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机程序。在电子设备上加载和执行计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个基站、电子设备、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个基站、电子设备、服务器或数据中心进行传输。所述计算机可读存储介质可以是电子设备能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、 或者半导体介质(例如固态硬盘(solid state disk,SSD))等。本申请实施例中,电子设备可以包括前面所述的装置。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (13)

1.一种POS设备工作的实现方法,其特征在于,包括:POS设备开机后启动常驻服务,所述常驻服务读取并加载预置的设备ID注册表和设备类型注册表,注册系统广播并开始监听,创建虚拟串口;
当所述常驻服务监听到第一系统广播时,执行以下操作:
步骤D1:所述常驻服务从所述第一系统广播中获取设备信息,根据所述设备信息判断所述设备ID注册表中是否有映射的应用包名,是则执行步骤D2,否则执行步骤D3;
步骤D2:所述常驻服务根据所述应用包名判断对应应用是否符合打开条件,是则打开所述对应应用,所述对应应用与外部设备建立连接开始进行通讯,所述常驻服务继续监听系统广播,否则结束本次操作,所述常驻服务继续监听系统广播;
步骤D3:所述常驻服务从所述第一系统广播中获取设备接口类型,根据所述设备信息和所述设备接口类型确定外部设备的设备类型,执行步骤D4;
步骤D4:所述常驻服务根据所述设备类型判断所述设备类型注册表中是否有映射的匹配条件和应用包名,是则如判断所述匹配条件符合要求,则根据所述应用包名打开对应应用,所述对应应用与外部设备建立连接开始进行通讯,所述常驻服务继续监听系统广播,否则结束本次操作,所述常驻服务继续监听系统广播;
当所述常驻服务监听到第三系统广播时,执行以下操作:
步骤B1:所述常驻服务与外部的安卓设备建立连接,轮询读取端点数据;
步骤B2:所述常驻服务从读取到的端点数据中获取认证信息和应用包名,判断所述认证信息是否有效,是则执行步骤B3,否则断开与所述安卓设备的连接,结束本次操作,所述常驻服务继续监听系统广播;
步骤B3:所述常驻服务根据所述应用包名判断对应应用是否符合打开条件,是则打开所述对应应用,断开与所述安卓设备的连接,所述对应应用与所述安卓设备建立连接开始通讯,所述常驻服务继续监听系统广播,否则断开与所述安卓设备的连接,结束本次操作,所述常驻服务继续监听系统广播;
当所述常驻服务监听到第二系统广播时,执行以下操作:
步骤C1:所述常驻服务打开虚拟串口,通过所述虚拟串口轮询读取串口文件中的串口数据,当在预设时间内读取到串口数据时从所述串口数据中获取认证信息和应用包名,判断所述认证信息是否有效,是则执行步骤C2,否则关闭所述虚拟串口,结束本次操作,所述常驻服务继续监听系统广播;
步骤C2:所述常驻服务根据所述应用包名判断对应应用是否符合打开条件,是则打开所述对应应用,关闭所述虚拟串口,所述对应应用与外部设备建立连接开始通讯,所述常驻服务继续监听系统广播,否则关闭所述虚拟串口,结束本次操作,所述常驻服务继续监听系统广播。
2.如权利要求1所述的方法,其特征在于,所述常驻服务根据所述应用包名判断对应应用是否符合打开条件,包括:
步骤T1:所述常驻服务根据所述应用包名判断已安装的应用列表中是否存在对应应用,是则执行步骤T2,否则对应应用不符合打开条件;
步骤T2:所述常驻服务判断所述对应应用是否已运行,是则对应应用不符合打开条件,否则对应应用符合打开条件。
3.如权利要求1所述的方法,其特征在于,所述外部设备的设备类型如为第一类型设备,所述步骤D4中的如判断所述匹配条件符合要求,则根据所述应用包名打开对应应用,所述对应应用与外部设备建立连接开始进行通讯,所述常驻服务继续监听系统广播,包括:
步骤A1:所述常驻服务判断所述匹配条件是否符合要求,是则执行步骤A2,否则结束本次操作,所述常驻服务继续监听系统广播;
步骤A2:所述常驻服务根据所述应用包名判断对应应用是否符合打开条件,是则打开所述对应应用,所述对应应用与所述第一类型设备建立连接开始通讯,所述常驻服务继续监听系统广播,否则结束本次操作,所述常驻服务继续监听系统广播。
4.如权利要求3所述的方法,其特征在于,如第一类型设备为U盘或鼠标或键盘或打印机,所述步骤A1包括:所述常驻服务判断所述匹配条件中的根目录路径下是否存在应用文件,是则执行步骤A2,否则结束本次操作,所述常驻服务继续监听系统广播。
5.如权利要求3所述的方法,其特征在于,如第一类型设备为读卡器,所述步骤A1包括:所述常驻服务与读卡器建立连接,向所述读卡器发送认证指令,接收所述读卡器返回的认证响应,判断所述认证响应中是否包含认证成功信息,是则执行步骤A2,否则断开与所述读卡器的连接,结束本次操作,所述常驻服务继续监听系统广播;
所述步骤A2包括:所述常驻服务根据应用包名判断对应应用是否符合打开条件,是则打开对应应用,断开与读卡器的连接,所述对应应用与读卡器建立连接开始通讯,所述常驻服务继续监听系统广播,否则断开与读卡器的连接,结束本次操作,所述常驻服务继续监听系统广播。
6.如权利要求1所述的方法,其特征在于,所述外部设备的设备类型如为第二类型设备,所述第二类型设备为安卓设备,所述步骤D4中的如判断所述匹配条件符合要求,则根据所述应用包名打开对应应用,包括:
步骤K1:所述常驻服务判断所述设备信息中的设备PID是否为第一预设值,是则执行步骤K4,否则执行步骤K2;
步骤K2:所述常驻服务与外部的安卓设备建立连接,通过系统加载驱动,通过所述驱动获取AOA协议的标准请求包数据,将所述标准请求包数据发送给所述安卓设备,执行步骤K3;
步骤K3:所述常驻服务断开与所述安卓设备的连接,结束本次操作,所述常驻服务继续监听系统广播;
步骤K4:所述常驻服务与外部的安卓设备建立连接,轮询读取端点数据,从读取到的端点数据中获取认证信息和应用包名;
步骤K5:所述常驻服务判断所述认证信息是否有效,是则执行步骤K6,否则断开与所述安卓设备的连接,结束本次操作,所述常驻服务继续监听系统广播;
步骤K6:所述常驻服务根据所述应用包名判断对应应用是否符合打开条件,是则执行步骤K7,否则断开与所述安卓设备的连接,结束本次操作,所述常驻服务继续监听系统广播;
步骤K7:所述常驻服务打开所述对应应用,断开与所述安卓设备的连接,所述对应应用与所述安卓设备建立连接开始通讯,所述常驻服务继续监听系统广播。
7.如权利要求6所述的方法,其特征在于,所述步骤K2与所述步骤K3之间还包括:所述安卓设备接收到所述标准请求包数据后,所述安卓设备将自身的工作模式从USB主机模式切换为USB配件模式,切换过程中所述安卓设备的系统进行一次USB的逻辑拔插操作,所述POS设备的系统发出逻辑拔插操作广播和所述第一系统广播。
8.如权利要求1所述的方法,其特征在于,所述外部设备的设备类型如为第三类型设备,所述第三类型设备为串口设备或PC设备;所述步骤D4中的如判断所述匹配条件符合要求,则根据所述应用包名打开对应应用,包括:
步骤L1:所述常驻服务与外部的第三类型设备建立连接,并轮询读取串口文件中的数据;
步骤L2:所述常驻服务从读取到的数据中获取认证信息和应用包名,判断所述认证信息是否有效,是则执行步骤L3,否则断开与所述第三类型设备的连接,结束本次操作,所述常驻服务继续监听系统广播;
步骤L3:所述常驻服务根据所述应用包名判断对应应用是否符合打开条件,是则打开所述对应应用,断开与所述第三类型设备的连接,所述对应应用与所述第三类型设备建立连接开始通讯,所述常驻服务继续监听系统广播,否则断开与所述第三类型设备的连接,结束本次操作,所述常驻服务继续监听系统广播。
9.如权利要求1所述的方法,其特征在于,所述判断所述认证信息是否有效包括:判断所述认证信息是否为有效证书信息,是则有效,否则无效。
10.一种POS设备工作的实现装置,其特征在于,所述实现装置设置在POS设备中,所述POS设备开机后启动所述实现装置,所述实现装置包括:
读取注册创建模块,用于读取并加载预置的设备ID注册表和设备类型注册表,注册系统广播并开始监听,创建虚拟串口;
第一获取判断模块,用于当所述读取注册创建模块监听到第一系统广播时从所述第一系统广播中获取设备信息,根据所述设备信息判断所述设备ID注册表中是否有映射的应用包名,是则触发第一判断打开模块,否则触发获取确定模块;
所述第一判断打开模块,用于根据所述应用包名判断对应应用是否符合打开条件,是则打开所述对应应用,所述对应应用与外部设备建立连接开始进行通讯,触发所述读取注册创建模块继续监听系统广播,否则结束本次操作,触发所述读取注册创建模块继续监听系统广播;
所述获取确定模块,用于从所述第一系统广播中获取设备接口类型,根据所述设备信息和所述设备接口类型确定外部设备的设备类型;
第二判断打开模块,用于根据所述设备类型判断所述设备类型注册表中是否有映射的匹配条件和应用包名,是则如判断所述匹配条件符合要求,则根据所述应用包名打开对应应用,所述对应应用与外部设备建立连接开始进行通讯,触发所述读取注册创建模块继续监听系统广播,否则结束本次操作,触发所述读取注册创建模块继续监听系统广播;
建立读取模块,用于当所述读取注册创建模块监听到第三系统广播时,所述装置与外部的安卓设备建立连接,轮询读取端点数据;
第二获取判断模块,用于从读取到的端点数据中获取认证信息和应用包名,判断所述认证信息是否有效,是则执行步骤S8,否则断开与所述安卓设备的连接,结束本次操作,触发所述读取注册创建模块继续监听系统广播;
第三判断打开模块,用于根据所述应用包名判断对应应用是否符合打开条件,是则打开所述对应应用,断开与所述安卓设备的连接,所述对应应用与所述安卓设备建立连接开始通讯,触发所述读取注册创建模块继续监听系统广播,否则断开与所述安卓设备的连接,结束本次操作,触发所述读取注册创建模块继续监听系统广播;
第三获取判断模块,用于当所述读取注册创建模块监听到第二系统广播时,打开虚拟串口,通过所述虚拟串口轮询读取串口文件中的串口数据,当在预设时间内读取到串口数据时从所述串口数据中获取认证信息和应用包名,判断所述认证信息是否有效,是则触发第四判断打开模块,否则关闭所述虚拟串口,结束本次操作,触发所述读取注册创建模块继续监听系统广播;
所述第四判断打开模块,用于根据所述应用包名判断对应应用是否符合打开条件,是则打开所述对应应用,关闭所述虚拟串口,所述对应应用与外部设备建立连接开始通讯,触发所述读取注册创建模块继续监听系统广播,否则关闭所述虚拟串口,结束本次操作,触发所述读取注册创建模块继续监听系统广播。
11.一种电子设备,其特征在于,所述电子设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现权利要求1至9任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至9任一项所述的方法。
13.一种芯片系统,其特征在于,包括芯片,所述芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行权利要求1-9任一项所述的方法。
CN202311763171.5A 2023-12-21 2023-12-21 一种pos设备工作的实现方法及装置 Active CN117437728B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311763171.5A CN117437728B (zh) 2023-12-21 2023-12-21 一种pos设备工作的实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311763171.5A CN117437728B (zh) 2023-12-21 2023-12-21 一种pos设备工作的实现方法及装置

Publications (2)

Publication Number Publication Date
CN117437728A true CN117437728A (zh) 2024-01-23
CN117437728B CN117437728B (zh) 2024-03-01

Family

ID=89558582

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311763171.5A Active CN117437728B (zh) 2023-12-21 2023-12-21 一种pos设备工作的实现方法及装置

Country Status (1)

Country Link
CN (1) CN117437728B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095333A1 (en) * 2004-10-28 2006-05-04 Gambhir Robin K System and method for an electronic commerce product for managing the pricing, inventory, sales, and selection of goods and services offered for sale
CN104408836A (zh) * 2014-09-22 2015-03-11 上海众人科技有限公司 一种基于移动终端的收款方法及装置
CN106648937A (zh) * 2016-12-29 2017-05-10 北京奇虎科技有限公司 一种安卓应用的广播代理方法和装置
CN107767594A (zh) * 2017-11-09 2018-03-06 福州汇思博信息技术有限公司 一种预安装软件的检测方法及系统
CN109445954A (zh) * 2018-09-11 2019-03-08 百富计算机技术(深圳)有限公司 一种定时任务的执行方法、终端设备及存储介质
CN114327519A (zh) * 2021-12-31 2022-04-12 飞天诚信科技股份有限公司 一种在智能pos设备上安装应用的实现方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095333A1 (en) * 2004-10-28 2006-05-04 Gambhir Robin K System and method for an electronic commerce product for managing the pricing, inventory, sales, and selection of goods and services offered for sale
CN104408836A (zh) * 2014-09-22 2015-03-11 上海众人科技有限公司 一种基于移动终端的收款方法及装置
CN106648937A (zh) * 2016-12-29 2017-05-10 北京奇虎科技有限公司 一种安卓应用的广播代理方法和装置
CN107767594A (zh) * 2017-11-09 2018-03-06 福州汇思博信息技术有限公司 一种预安装软件的检测方法及系统
CN109445954A (zh) * 2018-09-11 2019-03-08 百富计算机技术(深圳)有限公司 一种定时任务的执行方法、终端设备及存储介质
CN114327519A (zh) * 2021-12-31 2022-04-12 飞天诚信科技股份有限公司 一种在智能pos设备上安装应用的实现方法及装置

Also Published As

Publication number Publication date
CN117437728B (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
TWI338222B (en) Method and system for allowing a media player to transfer digital audio to an accessory
US8166220B2 (en) Device for connection with a storage device and a host
JP4882036B1 (ja) 電化製品の種別を決定する情報処理装置、方法、サーバ
US8266300B2 (en) System and method for plug and play between host and client
EP1566920A1 (en) Information processing device, server client system, method, and computer program
US20070011491A1 (en) Method for platform independent management of devices using option ROMs
US20030061320A1 (en) Configuring a network parameter to a device
CN101841559B (zh) 网络装置以及将外部存储装置公开于网络上的方法
US8700827B2 (en) Matching method, system and device for data exchange between a communication object and a processing unit
WO2010115366A1 (zh) 设备驱动方法、装置及通信系统
US20160323810A1 (en) Deployment and configuration of access points
CN110134447A (zh) 基于操作系统的bmc即时更新硬盘信息的系统及方法
WO2016119623A1 (zh) 一种网络分享的实现方法和装置
WO2012034323A1 (zh) 使用数据卡与无线网络通信的方法、系统及数据卡
WO2011107022A1 (zh) 数据卡及拨号上网方法
CN117437728B (zh) 一种pos设备工作的实现方法及装置
WO2006092042A1 (en) A method and protocol for transmitting extended commands to usb devices
CN114595178A (zh) 一种用于hid键鼠设备防护的外接式防护设备和方法
CN104516743B (zh) 基于ActiveX的嵌入式设备固件的升级方法及系统
WO2024032474A1 (zh) 设备接入方法、数据交换方法及相关设备
CN111338673A (zh) 设备调试方法、装置、电子设备及存储介质
WO2023279959A1 (zh) 一种增加piv应用支持证书数量的实现方法及装置
CN102752365B (zh) 信息处理的方法与装置
CN109857465A (zh) 一种云桌面usb驱动的自动安装方法和系统
JP2013530472A (ja) アプリケーションのインストールのための方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant