服务连接

根据新大陆智能POS的硬件设备提供了各种服务. 如:基础服务, 打印服务, 扫码服务和交易服务等.

发现服务

不同设备可能安装不同的服务,因此需要先使用 CapabilityType 查询到对应的服务的 CapabilityProvider.

CapabilityProviderServiceHelper helper = new CapabilityProviderServiceHelper(context);
CapabilityProviderFilter filter = new CapabilityProviderFilter(CapabilityType.BASIC);
helper.getCapabilityProviders(filter,new INewlandCapabilityManagerListener(){
  public void onSuccess(List<CapabilityProvider> providers){
    //选择合适的provider来获取service并进行下一步操作
  }

  public void onError(NewlandError error){
    //异常处理
  }
})

连接使用服务

helper.getCapabilityService(provider,new ProviderConnectionCallback(){
  public void onConnected(CapabilityProvider provider,IBinder service){
    if(provider.getCapabilityType() == CapabilityType.BASIC){
      INewlandBasicManager basicManager = helper.getStandardManager(CapabilityType.BASIC,service);
      basicManager.getDeviceInfo(new INewlandDeviceInfoCallback(){
        public void onSuccess(DeviceInfo deviceInfo){
            //TODO
        }
        public void onError(NewlandError error){
            //TODO
        }
      });
    }
  }

  public void onDisconnected(CapabilityProvider provider){
    //与服务断开连接
  }
})

标准服务

按照如下方式可以省去发现和连接服务的代码而直接获取到对应服务的Manager.

//基础服务
helper.getBasicManager(new INewlandManagerCallback.INewlandBasicCallback() {
    @Override
    public void onSuccess(INewlandBasicManager manager, CapabilityProvider provider) {
    }
    @Override
    public void onError(NewlandError error) {
    }
});
//打印服务
helper.getPrinterManager(callback);
//扫码服务
helper.getScannerManager(callback);
//交易服务
helper.getTransactionManager(callback);
//读卡服务
helper.getCardReaderManager(callback);

断开服务连接

@Override
protected void onDestroy(){
    super.onDestroy();
    helper.disconnectCapabilityService(provider);
}

results matching ""

    No results matching ""