1

我正在使用代号构建一个 Android POS 应用程序。我想从这里http://www.cm-soft.com/AndroidPrinterSDK.htm使用 CMSoft BT-Printer SDK 。这使用 AIDL 接口。我如何从 Codenameone 项目访问它?

4

1 回答 1

2

1)在您的项目中创建一个常规接口,该接口扩展 NativeInterface 以与打印机服务进行通信。

2) 接口 PrinterInterface 扩展 NativeInterface{

公共无效绑定服务();公共无效开始扫描();公共无效停止扫描();}

3)右键点击界面,选择“Generate Native Access”——这将在项目的native目录下创建实现文件。

4) 在 native/android 目录下,您将获得一个 PrinterInterfaceImpl 类,确保 isSupported() 方法返回 true,现在只需在此类中实现您的 android 代码。

使用 AndroidNativeUtil.getActivity() 访问您的活动。例如:

AndroidNativeUtil.getActivity().registerReceiver(mReceiver, new IntentFilter(RECEIVER));

AndroidNativeUtil.getActivity().unregisterReceiver(mReceiver);

5)在 impl 类中,您可以绑定您的接收器:

final class ScannerReceiver extends BroadcastReceiver {
    @Override

    public void onReceive(Context context, Intent intent) {            
        String data = null;

        if (intent.getAction().equals(RECEIVER)) {
            data = intent.getStringExtra(DATA);
        }

        if (data != null) {
            String msg;

            if (data.startsWith("S:")) {                 
                msg = data.substring(data.indexOf(':', 2) + 1);                    
            }                

            if (data.startsWith("D:")) {
                msg = data.substring(data.indexOf(':', 2) + 1);                    
            }
        }
    }        
}

private final ScannerReceiver mReceiver = new ScannerReceiver();
private final Intent mService = new Intent(SERVICE);
于 2013-08-14T07:17:21.930 回答