Перейти к содержанию
Fire Monkey от А до Я

chaplin.u@gmail.com

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

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

  • Посещение

Весь контент chaplin.u@gmail.com

  1. файл есть ...\Android\Debug\System.Android.Bluetooth.dcu но я вижу что нужно как сказал ZuBy ещё раз всё уточнить. 1. Устройства я понятно предоставить не могу но и можно без него т.к. речь идёт о добавлении функции/метода к готовой компоненте. 2. Как я понял мульти-платформенность в студии работает перенаправлением вызовов функций в студии к нативным функциям платформы. поэтому в директории c:\Program Files (x86)\Embarcadero\Studio\18.0\source\rtl\net\ есть System.Android.Bluetooth.pas,System.Mac.Bluetooth.pas,System.Win.Bluetooth.pas. 3. В компоненте BluetoothLE есть TBluetoothLEDevice у которого есть функции/методы http://docwiki.embarcadero.com/Libraries/Berlin/en/System.Bluetooth.TBluetoothLEDevice. В этом списке отсутствует function requestMtu(mtu: Integer): Boolean; cdecl; и procedure onMtuChanged(gatt: JBluetoothGatt; mtu: Integer; status: Integer); cdecl; которые присутсвуют в c:\Program Files (x86)\Embarcadero\Studio\18.0\source\rtl\android\Androidapi.JNI.Bluetooth.pas задача в том чтобы подключить их к компоненте. т.е чтобы они появились в меню доступных функций ( см. катинку) и компилятор не матюкнулся когда я напишу FBLEDevice->requestMtu(200) т.е. ты можешь положить компоненту на форму и проверить что такая функция присутствует. задача выполнена.
  2. может не туда вставили ? там кроме TAndroidBluetoothGattListener есть ещё TBluetoothLEAdapter TAndroidBluetoothLEDevice TAndroidBluetoothGattServerListener
  3. добавил в проект. скомпилировал. запустил но наличие этого файла никак не меняет программу. типа ему по-барабану что он есть что нет. никакого запроса не происходит...
  4. я вижу что это добавлено в Create а по описанию запрос подаётся после OnConnect http://stackoverflow.com/questions/36435575/bluetoothgatt-negotiating-new-mtu-succeeds-but-new-size-cannot-be-used-3-bytes
  5. извиняюсь за ламерство но как этот файл подключить к проекту
  6. Потому что это не всякая железка а спец. девайс. Поэтому я и прошу дать код( компоненту) и я её проверю.
  7. ок. путь есть. теперь нужно найти проводника ( желательно не Сусанина)...
  8. а нельзя ли перегрузить компоненту новым методом ? тобишь добавить к существующим и вызывать BLEDevice-> requestMtu()
  9. я думаю что ты глубоко копнул. методы для подключения и др. в стандартной компоненте есть. я могу подключиться, получить все данные . послать и т.д. BLEDevice->Connect(); BLEDevice->DiscoverServices(); .... нужно только после подключения послать запрос на увеличение размера пакета. т.е. наверное что-то типа вызова интента.
  10. Ищу информацию о работе с компонентами в Бильдере : как чинить , создавать, подключать.... на любом языке.
  11. во-первых это невозможно как примеру закрыть дверь изнутри до того как ты вошёл в дом. но ты можешь зайти, поставить код на замок и потом заходить по этому только тебе известному коду. во-вторых как я установил процедуры установки пароля в компоненте нет !
  12. сразу после подключения. но я её сам буду вызывать. нужно только сделать возможность её вызывать.
  13. как-то реализовать функцию по увеличению пакета. вот её описание : https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html#requestMtu(int) в файле c:\Program Files (x86)\Embarcadero\Studio\18.0\source\rtl\android\Androidapi.JNI.Bluetooth.pas есть её вызов : function requestMtu(mtu: Integer): Boolean; cdecl; а в компоненте её нет.
  14. Ребята вы меня не за того принимаете. Чукча не писатель.Чукча - читатель. Я не дельфиец а бильдеровец и могу только пользоваться готовой компонентой а не переделывать Абракадабру. скажем такой код на жабе можно закатать в студию ? public static void exchangeGattMtu(int mtu) { int retry = 5; boolean status = false; while (!status && retry > 0) { status = mBluetoothGatt.requestMtu(mtu); retry--; }
  15. В Андроиде функции есть : https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html#requestMtu(int) Нет её реализации в компоненте.
  16. докопался до истины и она посредине. стандартно обмен идёт по минимуму - 20 байт но есть процесс переговоров (NEGOTIATION ) между телефоном и устройством который может привести к увеличению пакета до 525 байт. апликация должна запросить устройство на увеличение пакета. так вот несмотря на то что в файле этот параметр как видите есть в поставляемой от Абракадабры компоненте нет реализации этого процесса. как и полностью отсутствует обмен паролем для защиты от постороннего вмешательства. т.е. любой посторонний может получить полный контроль над вашим устройством. Вывод : компонента поставляется в ознакомительных целях и для создания коммерческих приложений запрещена ! Ну и если кто знает где есть нормальная компонента - просьба сообщить.
  17. Как открыть файл который находится не на телефоне а на гугл драйв или ютубе? Юзер получает ссылку и по ней нужно видимо запустить интент.
  18. Оказалось что нужно класть в общедоступные папки а это чревато удалением нужного файла. А как в случае отсутствия файла дать ссылку на скачивание и запуск скаченного файла ?
  19. Виталий просьба осветить вопрос поподробнее. 1. Что за внешнее хранилище ? Какой путь нужно ставить в деплоймент менеджере и какую функцию использовать для поиска файла ( GetDocumentsPath или GetSharedDocumentsPath) ? 2. Если у файла имя myDoc.pdf Нужно ли указать : AFileName = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetSharedDocumentsPath(), L"file:MyDoc.pdf"); или как-то иначе ?
×
×
  • Создать...