zheka1980
-
Постов
15 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные zheka1980
-
-
Хм... для меня явилось откровением, что оказывается сопряжение то и не требуется чтобы подключиться к устройству...
У меня до этого была какая-то библиотека на Java, так она вообще работала только лишь с сопряженными устройствами. Что и сбило меня с толку.
Попробовал без сопряжения- сокет создается, данные гонятся.
Так что можно считать, что проблема исчерпана.
-
Господа, есть вопрос.
Работает у меня код, который ищет блютус-устройства и формирует из них список (ComboBox). Пользователь выбирает из комбобокса нужное устройство, при выборе автоматом запускается функция подключения. Если устройство сопряжено, то создается сокет, а дальше дело техники.
Если же устройство не сопряжено, то я вызываю
if (BTDevice->IsPaired==0) Bluetooth1->Pair(BTDevice);
что приводит к появлению диалогового окна, но не моей программы, а самой операционной системы Андроид, которое предлагает ввести пароль.
Вопрос - как дальше вести себя моей программе? Окно операционной системы самостоятельное, программа же идет дальше.
Первая мысль - по таймеру раз в пару сот миллисекунд проверять BTDevice->IsPaired и как только оно станет положительным, создавать сокет.
А если попытка сопряжения будет неудачной, скажем, пароль кривой? Как программе понять, что пора бы прекратить проверять BTDevice->IsPaired, а подготовиться к повторной попытке сопряжения. Иначе после первой же неудачной попытки осуществить сопряжение, программа уйдет в транс.
-
WebBrowser1.Navigate(TPath.GetPublicPath+'Tesseract.gif');
Так я пытаюсь запустить локальный файл. Не получается, пишет, что не может открыть файл. Путь указан правильный, н оначинается с http:
Как мне направить webbrowser по нужному пути?
-
Embarcadero Delphi - где искать apk после компиляции проекта?
Всю папку перерыл - нет. Может как-то где-то включить надо, чтобы система не в телефон грузила проект, а на диск?
-
Еще проблемка - если PDF содержит русские буквы - компилируется, но не заливается. Как побороть?
-
С утра пойду в другие разделы, гундеть по поводу того, что GIF-ка анимированная не крутится)))
-
Цитата
не (Shared)DocumentsPath, a PublicPath
Шайтанама!!!
Вон че крест животворящий делаит!!!
Спасибо!
-
С Веббраузером - не получается.
-
Спасибо, я уже в принципе разобрался. Почти разобрался.
ВОт такой код
procedure TForm7.btnOpenPDFClick(Sender: TObject); const SAMPLE_PDF_FILENAME = 'example.pdf'; var Uri: Jnet_Uri; OpenLinkIntent: JIntent; PDFFileName: string; sr:TSearchRec; bchars, Tws:TSysCharSet; Intent: JIntent; begin PDFFileName :=TPath.Combine(TPath.GetSharedDocumentsPath, SAMPLE_PDF_FILENAME); { Внутренний доступ} Label1.Text:=PDFFileName; if (FindFirst(TPath.GetDocumentsPath+'/*.pdf', faAnyFile, sr) = 0) then begin Memo1.Lines.Add(sr.Name); while (FindNext(sr) = 0) do begin Memo1.Lines.Add(sr.Name); end; end; FindClose(sr); Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setDataAndType(StrToJURI('file:'+PDFFileName), StringToJString('application/pdf')); try SharedActivity.startActivity(Intent); except on E: Exception do ShowMessage('Не удалось открыть PDF. В системе нет доступных приложения для просмотра pdf'); end; end;
Вот такой код открывает файлы, но только если они в SharedDocumentsPath.
Если пытаюсь открывать в DocumentsPath - не получается.
Пытаюсь идти обратным путем - добавляю файлы в проект, запускаю Deployment, меняю assets\internal на assets - ни хрена.... При заливе проекта файлы в DocumentsPath не копируются.
Мне нужно, чтобы человек скачал программу, содержащуюв себе PDFки, установил ее, и мог из программы эти PDF открыть. Возможно ли вообще в принципе сделать так, чтобы не скачивать PDF отдельно и не записыват в специаьную папку?
-
Цитата
file://ссылка на pdf"
А вы не могли бы поточнее? Вот добыл я имя файла
PDFFileName :=TPath.Combine(TPath.GetDocumentsPath, '222.pdf');
Присобачиваю это к 'file://' - не пашет.
-
Я просто думал, что могу не только программой получить доступ, но и проводником посмотреть.
К слову - интересная штука, я просканировал папку пользователькую - в мемо имена загруженных файлов выводятся, то есть они скопировались и обнаруживаются.
Но вот не открывается PDF
Цитатаprocedure TForm7.btnOpenPDFClick(Sender: TObject); const SAMPLE_PDF_FILENAME = 'example.pdf'; var Uri: Jnet_Uri; OpenLinkIntent: JIntent; PDFFileName: string; sr:TSearchRec; bchars, Tws:TSysCharSet; Intent: JIntent; begin PDFFileName :=TPath.Combine(TPath.GetDocumentsPath, SAMPLE_PDF_FILENAME); { Внутренний доступ} Label1.Text:=PDFFileName; if (FindFirst(TPath.GetDocumentsPath+'/*.pdf', faAnyFile, sr) = 0) then begin Memo1.Lines.Add(sr.Name); while (FindNext(sr) = 0) do begin Memo1.Lines.Add(sr.Name); end; end; FindClose(sr); /// /// /// /// Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setDataAndType(StrToJURI(PDFFileName), StringToJString('application/pdf')); SharedActivity.startActivity(Intent); /// // Uri := StrToJURI(PDFFileName); // Формируем намерение об открытии файла в стандартном приложении // OpenLinkIntent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW, Uri); // Устанавливаем тип данных // OpenLinkIntent.setType(StringToJString('application/pdf')); // OpenLinkIntent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_TOP); // Запускаем приложение и передаем ему наше намерение // try // SharedActivity.startActivity(OpenLinkIntent); // except on E: Exception do // ShowMessage('Не удалось открыть PDF. В системе нет доступных приложения для просмотра pdf'); //end; end;
-
Цитата
Если приложений несколько - запускает диалоговое окно выбора приложения, которое будет выполнять обработку вашего файла.
Вот! Как раз этого у меня и нет. У меня несколько приложений и когда я пытаюсь открыть файл из диспетчера - вопрос о программе задается.
А в мой программе - нет. Пишет - не удалось открыть файл.
-
А у меня вообще что-то не получается...
Пишет - не получается открыть файл.
Я думал какие-то проблемы с папками - скинул PDF в проверенную папку - Downloads, написал кусок кода, который в этой же папке роется и формирует список файлов, чтобы понять, что программа в папку лезет..
procedure TForm7.btnOpenPDFClick(Sender: TObject); const SAMPLE_PDF_FILENAME = '978.pdf'; var Uri: Jnet_Uri; OpenLinkIntent: JIntent; PDFFileName: string; sr:TSearchRec; bchars, Tws:TSysCharSet; begin PDFFileName :=TPath.Combine(TPath.GetSharedDownloadsPath, SAMPLE_PDF_FILENAME); { Внутренний доступ} Label1.Text:=PDFFileName; if (FindFirst(TPath.GetSharedDownloadsPath+'/*.pdf', faAnyFile, sr) = 0) then begin Memo1.Lines.Add(sr.Name); while (FindNext(sr) = 0) do begin Memo1.Lines.Add(sr.Name); end; end; FindClose(sr); Uri := StrToJURI(PDFFileName); // Формируем намерение об открытии файла в стандартном приложении OpenLinkIntent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW, Uri); // Устанавливаем тип данных OpenLinkIntent.setType(StringToJString('application/pdf')); OpenLinkIntent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_TOP); // Запускаем приложение и передаем ему наше намерение try SharedActivity.startActivity(OpenLinkIntent); except on E: Exception do ShowMessage('Не удалось открыть PDF. В системе нет доступных приложения для просмотра pdf'); end; end;
Что у меня не так?
-
Господа, пишу в Embarcadero DELPHI
Вот проект, который открывает PDF по нажатию кнопки, по определенному адресу.
А я хочу чтобы этот PDF поставлялся с программой.
Я добавил в проект файл 222.pdf. Залил программу. Рылся в памяти телефона - нет такого файла.
Что делать?
Странности с чтением данных по TBuetooth
в Bluetooth
Опубликовано · Изменено пользователем zheka1980
Вышеприведенный код запускается по таймеру каждую секунду - командой "reset" целевое устройство отправляется в перезагрузку, после чего отвечает, мол здесь я.
То есть вначале проверяется нет ли чего в буфере приема (не ответило ли целевое устройство), а если ответа нет, команда на ресет подается повторно.
То что len_rx принудительно сбрасывается в ноль - не обращайте внимания, это временно для отладки.
Так вот, что меня смущает - количество байт в FData, почему то всегда равно размеру buffer
Я было подумал, что где-то я эти переменные приравниваю друг к другу - ан нет. То, что оказывается в FData, является правильными данными, то есть тем, что шлет целевое устройство в ответ.
В чем причина? И чем отлиючаются ReadData и ReceiveData? Это буфера или нет? Как они работают? Что-то не густо информации в интернете.
Вот дока http://docwiki.embarcadero.com/Libraries/Berlin/en/System.Bluetooth.TBluetoothSocket.ReadData
но она как-то не сильно помогает.