chaplin.u@gmail.com
-
Постов
275 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные chaplin.u@gmail.com
-
-
файл есть ...\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)
т.е. ты можешь положить компоненту на форму и проверить что такая функция присутствует. задача выполнена.
-
может не туда вставили ? там кроме TAndroidBluetoothGattListener есть ещё TBluetoothLEAdapter TAndroidBluetoothLEDevice TAndroidBluetoothGattServerListener
-
добавил в проект. скомпилировал. запустил но наличие этого файла никак не меняет программу. типа ему по-барабану что он есть что нет.
никакого запроса не происходит...
-
я вижу что это добавлено в Create а по описанию запрос подаётся после OnConnect
-
извиняюсь за ламерство но как этот файл подключить к проекту
-
Потому что это не всякая железка а спец. девайс.
Поэтому я и прошу дать код( компоненту) и я её проверю.
-
ок. путь есть. теперь нужно найти проводника ( желательно не Сусанина)...
-
а нельзя ли перегрузить компоненту новым методом ? тобишь добавить к существующим и вызывать BLEDevice-> requestMtu()
-
я думаю что ты глубоко копнул. методы для подключения и др. в стандартной компоненте есть. я могу подключиться, получить все данные . послать и т.д.
BLEDevice->Connect();
BLEDevice->DiscoverServices();
....нужно только после подключения послать запрос на увеличение размера пакета. т.е. наверное что-то типа вызова интента.
-
Ищу информацию о работе с компонентами в Бильдере : как чинить , создавать, подключать.... на любом языке.
-
во-первых это невозможно как примеру закрыть дверь изнутри до того как ты вошёл в дом. но ты можешь зайти, поставить код на замок и потом заходить по этому только тебе известному коду.
во-вторых как я установил процедуры установки пароля в компоненте нет !
-
сразу после подключения. но я её сам буду вызывать. нужно только сделать возможность её вызывать.
-
как-то реализовать функцию по увеличению пакета. вот её описание : 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;
а в компоненте её нет. -
может кто-то помочь ?
-
Ребята вы меня не за того принимаете. Чукча не писатель.Чукча - читатель. Я не дельфиец а бильдеровец и могу только пользоваться готовой компонентой а не переделывать Абракадабру.
скажем такой код на жабе можно закатать в студию ?
public static void exchangeGattMtu(int mtu) {int retry = 5;boolean status = false;while (!status && retry > 0) {status = mBluetoothGatt.requestMtu(mtu);retry--;} -
В Андроиде функции есть : https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html#requestMtu(int)
Нет её реализации в компоненте.
-
Android iOS
-
В 9/12/2016 в 23:40, chaplin.u@gmail.com сказал:
BTHLEENUM_ATT_MTU_INITIAL_NEGOTIATION = 525;
докопался до истины и она посредине.
стандартно обмен идёт по минимуму - 20 байт
но есть процесс переговоров (NEGOTIATION ) между телефоном и устройством который может привести к увеличению пакета до 525 байт.
апликация должна запросить устройство на увеличение пакета. так вот несмотря на то что в файле этот параметр как видите есть в поставляемой от Абракадабры компоненте нет реализации этого процесса.
как и полностью отсутствует обмен паролем для защиты от постороннего вмешательства. т.е. любой посторонний может получить полный контроль над вашим устройством.
Вывод : компонента поставляется в ознакомительных целях и для создания коммерческих приложений запрещена !
Ну и если кто знает где есть нормальная компонента - просьба сообщить.
-
Спасибо ! Всё работает.
-
-
Как открыть файл который находится не на телефоне а на гугл драйв или ютубе? Юзер получает ссылку и по ней нужно видимо запустить интент.
-
Большое спасибо. Все понятно.
-
Оказалось что нужно класть в общедоступные папки а это чревато удалением нужного файла. А как в случае отсутствия файла дать ссылку на скачивание и запуск скаченного файла ?
-
Виталий просьба осветить вопрос поподробнее.
1. Что за внешнее хранилище ? Какой путь нужно ставить в деплоймент менеджере и какую функцию использовать для поиска файла ( GetDocumentsPath или GetSharedDocumentsPath) ?
2. Если у файла имя myDoc.pdf Нужно ли указать : AFileName = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetSharedDocumentsPath(), L"file:MyDoc.pdf"); или как-то иначе ?
баг в компоненте TBluetoothLE
в Bluetooth
Опубликовано
т.е местным гуру это не под силу ?