外设API文档
目录
目的
为整合企业资源,提高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 更新时间:2024-06-18 09:08
最后编辑:admin 更新时间:2024-06-18 09:08