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