Перейти к содержанию

destroyer86

Пользователи
  • Активность

    6
  • Зарегистрирован

  • Посещение

Информация о destroyer86

  • Звание
    Новичок
  1. Я предлагаю, что было бы отличной идеей выложить уроки FMX в свободный доступ и ссылку на донат
  2. destroyer86

    Serial port

    JavaWrapper.zip uses FMX.Dialogs, System.DateUtils, System.SysUtils, System.Types, Androidapi.JNIBridge, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes, Androidapi.JNI.Os, Androidapi.Helpers, Androidapi.JNI.App, Androidapi.Jni, JavaInterfaces, var FUSBManager : JUsbManager; FProber : JUsbSerialProber; FDriver : JUsbSerialDriver; FConnection : JUsbDeviceConnection; FPort : JUsbSerialPort; FList : JList; LastErrMsg : string; function USBPortOpen: Boolean; begin try FUSBManager := TJUsbManager.Wrap(TAndroidHelper.Activity.getSystemService(TJContext.JavaClass.USB_SERVICE)); FProber := TJUsbSerialProber.JavaClass.getDefaultProber; FList := FProber.findAllDrivers(FUSBManager); if FList.isEmpty then Exit(False); FDriver := TJUsbSerialDriver.Wrap(FList.get(0)); FConnection := FUSBManager.openDevice(FDriver.getDevice); if not Assigned(FConnection) then begin Exit(False); end; FPort := TJUsbSerialPort.Wrap(FDriver.getPorts.get(0)); FPort.open(FConnection); FPort.setParameters(ChannelSettings.Speed, ChannelSettings.Bits, ChannelSettings.StopBits, ChannelSettings.Parity); Exit(True); except on E: Exception do begin LastErrMsg := E.ClassName + ' поднята ошибка, с сообщением : ' + E.Message; end; end; Result := False; end; function UsbWrite(): Boolean; var arr: TJavaArray<Byte>; Count: Intger; begin arr := TJavaArray<System.Byte>.Create(Length(BufIn)); Count := FPort.Write(arr, TimeOut); Result := (Count > 0) end; function UsbRead(): Boolean; var arr: TJavaArray<Byte>; Count: Intger; begin arr := TJavaArray<System.Byte>.Create(Length(BufIn)); Count := FPort.read(arr, TimeOut); Result := (Count > 0) end;
  3. destroyer86

    Serial port

    Да https://ru.stackoverflow.com/questions/1187519/Работа-с-библиотекой-com-github-mik3yusb-serial-for-android-из-delphi?noredirect=1#comment2069760_1187519
  4. destroyer86

    Serial port

    https://ru.stackoverflow.com/questions/1187102/android-как-собрать-jar-библиотеку-из-github
  5. Всем привет, с помощью Java2Op сделал обертку библиотеки получил модуль с интерфейсами. Теперь сам вопрос в JavaInterfaces.pas есть описание: JUsbManagerClass = interface(JObjectClass) ['{1048A6E9-E1B5-4DA5-A168-ED91E8DE5284}'] {class} function _GetACTION_USB_ACCESSORY_ATTACHED: JString; cdecl; {class} function _GetACTION_USB_ACCESSORY_DETACHED: JString; cdecl; {class} function _GetACTION_USB_DEVICE_ATTACHED: JString; cdecl; {class} function _GetACTION_USB_DEVICE_DETACHED: JString; cdecl; {class} function _GetEXTRA_ACCESSORY: JString; cdecl; {class} function _GetEXTRA_DEVICE: JString; cdecl; {class} function _GetEXTRA_PERMISSION_GRANTED: JString; cdecl; {class} function getAccessoryList: TJavaObjectArray<JUsbAccessory>; cdecl;//Deprecated {class} function openAccessory(accessory: JUsbAccessory): JParcelFileDescriptor; cdecl;//Deprecated {class} function openDevice(device: JUsbDevice): JUsbDeviceConnection; cdecl;//Deprecated {class} procedure requestPermission(device: JUsbDevice; pi: JPendingIntent); cdecl; overload;//Deprecated {class} property ACTION_USB_ACCESSORY_ATTACHED: JString read _GetACTION_USB_ACCESSORY_ATTACHED; {class} property ACTION_USB_ACCESSORY_DETACHED: JString read _GetACTION_USB_ACCESSORY_DETACHED; {class} property ACTION_USB_DEVICE_ATTACHED: JString read _GetACTION_USB_DEVICE_ATTACHED; {class} property ACTION_USB_DEVICE_DETACHED: JString read _GetACTION_USB_DEVICE_DETACHED; {class} property EXTRA_ACCESSORY: JString read _GetEXTRA_ACCESSORY; {class} property EXTRA_DEVICE: JString read _GetEXTRA_DEVICE; {class} property EXTRA_PERMISSION_GRANTED: JString read _GetEXTRA_PERMISSION_GRANTED; end; [JavaSignature('android/hardware/usb/UsbManager')] JUsbManager = interface(JObject) ['{6F603A25-E816-4012-9B23-054B428A4A75}'] function getDeviceList: JHashMap; cdecl;//Deprecated function hasPermission(device: JUsbDevice): Boolean; cdecl; overload;//Deprecated function hasPermission(accessory: JUsbAccessory): Boolean; cdecl; overload;//Deprecated procedure requestPermission(accessory: JUsbAccessory; pi: JPendingIntent); cdecl; overload;//Deprecated end; TJUsbManager = class(TJavaGenericImport<JUsbManagerClass, JUsbManager>) end; Что бы получить доступ к методам интерфейса используется следующая конструкция: JavaObject := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.USB_SERVICE); FUsbManager := TJUsbManager.Wrap((JavaObject as ILocalObject).GetObjectID); теперь я могу получить доступ к методам JUsbManager, а как получить доступ к методам JUsbManagerClass Вот пример кода на Java, который хочу реализовать в Delphi: UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager); if (availableDrivers.isEmpty()) { return; } // Open a connection to the first available driver. UsbSerialDriver driver = availableDrivers.get(0); //Вот тут мы видим что из экземпляра класса мы вызываем openDriver, как это сделать в Delphi UsbDeviceConnection connection = manager.openDevice(driver.getDevice()); Как мы можем заметить этого метода в описании интерфейса нет, но есть в классе, как получить доступ к экземпляру класса?
  6. destroyer86

    Serial port

    Всем привет, подскажите, а как вы собирали jar библиотеку из https://github.com/mik3y/usb-serial-for-android/
×
×
  • Создать...