外设API文档

外设SDK下载

目录

目的

为整合企业资源,提高POS 终端软件开发效率,特制订此规范

1.术语

1.1 服务(Service)

Android 系统中的四大组件之一。该组件几乎与Activity 的级别一致,但只能运行于后台,且可以和其他组件进行交互。
以下方式可启动服务(Service):(Context)ctx.bindService()

1.2 Android 接口定义语言(Android Interface definition language)

由于Android 系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。
为了使其他的应用程序也可以访问本应用程序提供的服务,Android 系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。

1.3 厂商服务应用(Service Application)

一种遵循本规范服务层接口的服务应用,该应用由海石设备厂商开发,能够驱动海信硬件设备(磁条或非接读卡器、蜂鸣等),该应用默认集成在POS产品中,供客户开发调用使用。

2 使用流程示例

4.1 添加jar包依赖

将资料包的psdk_Vxxxx.jar放到相应module的libs文件夹下,并在build.gradle中设置对jar包的依赖

4.2 绑定服务

绑定

客户端程序通过绑定com.histonepos.psdk服务,获取连接成功之后返回的实例,即可使用服务程序的所有接口

SmartService.getInstance().register(this, new IServiceConnector() {
   @Override
   public void onServiceDisconnected() {
      // TODO Auto-generated method stub
      GlobalDefines.sm = null;
   }

   @Override
   public void onServiceConnected(IServiceManager serviceManager) { 
      // TODO Auto-generated method stub
      Log.i("PosPad_Activity", "onServiceConnected");
      GlobalDefines.sm = serviceManager;
   }
});

解绑

SmartService.getInstance().unregister();

注意事项

在客户端软件启动时绑定打印服务,在客户端软件退出时解绑服务。绑定和解绑只需执行一次即可,不要频繁绑定和解绑服务。

4.3 获取外设模块对象

以打印机为例

private IPrinterService getPrinter() {
try {
     Return IPrinterService.Stub.asInterface(GlobalDefines.sm.getService(Const.PRINTER));
    } catch (RemoteException e) {
            e.printStackTrace();
    }
     return null;
}

注意事项

成功获得的外设对象可以一直使用,不要频繁获取外设对象。

4.4 调用外设的相关接口

参考AIDL接口清单

作者:admin  创建时间:2021-01-27 09:38
最后编辑:admin  更新时间:2023-07-10 09:53