В настоящее время разрабатывается приложение Unity для ELO Kiosk и используется их SDK (https://docs.elotouch.com/accessories/Application_Note_Android_ECM_Peripheral_SDK.pdf), чтобы попробовать и реализовать функции для своих периферийных сканеров штрих-кода и считывателя магнитных полос, но, похоже, ресурсов там немногочтобы помочь.
Основной EloPeripheralManager используется для связи между приложением и периферийными устройствами ELO, но у меня возникают некоторые проблемы при его создании. Копая код SDK (EloPeripheralManager.class), EloPeripheralManager имеет конструкторэто принимает 2 параметра.
public EloPeripheralManager(Context context, EloPeripheralEventListener listener) {
this.mEloManager = null;
this.mUsbPortCtl = null;
this.mEloManager = (ELOPeripheralManager)context.getSystemService("elo");
this.mListener = new PeripheralListener(null);
this.eventLister = listener;
this.mUsbPortCtl = new UsbPort(this.mEloManager);
Log.d("Elo", "[Peripheral Manager] Constructor");
getVersion();
}
Когда я вызываю конструктор из моего скрипта, я получаю сообщение об ошибке: AndroidJavaException: java.lang.NoSuchMethodError: нет нестатического метода«Lcom / elotouch / library / EloPeripheralManager;. (Landroid.app.Application; Ljava / lang / Class;) V»
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject context = activity.Call<AndroidJavaObject>("getApplicationContext");
Debug.Log("Get Elo Peripheral Event Listener");
EloPeripheralEventListener = new AndroidJavaClass("com.elotouch.library.EloPeripheralEventListener");
string gpio = EloPeripheralEventListener.GetStatic<string>("GPIO_IFACE_IN_1");
Debug.Log("GPIO: " + gpio);
Debug.Log("Get Elo Peripheral Manager");
EloPeripheralManager = new AndroidJavaObject("com.elotouch.library.EloPeripheralManager", new object[] { context, EloPeripheralEventListener });
Если я создаю экземпляр EloPeripheralManager без передачи контекста, а EloPeripheralEventListener аргументирует егоне будет выдавать ошибки.
EloPeripheralManager = new AndroidJavaClass("com.elotouch.library.EloPeripheralManager");
Однако мне нужен конструктор для создания экземпляров приватных переменных для mEloManager, mListener, eventListener и mUsbPortCtl.Я просто вызываю конструктор неправильно или контекст и EloPeripheralEventListener аргументируют проблему?Спасибо за помощь!