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

AppTethering не отправляет поток данных в Android-приложение


Delpher-X

Вопрос

Доброе время суток. У меня есть код, который отправляет данные, в частности файлы, из одного приложения в другое, используя технологию AppTethering. Вот код, который отправляет данные: 

var
ImageToStream : TMemoryStream;
begin
ImageToStream := TMemoryStream.Create;
ImageToStream.LoadFromFile('Здесь находится путь к файлу');
ImageToStream.Position := 0;
TetheringAppProfile1.Resources.FindByName('ImageTransfer').Value := ImageToStream;
ImageToStream.Free;
end;

А вот который принимает: 

procedure TForm1.TetheringAppProfile1Resources3ResourceReceived(
  const Sender: TObject; const AResource: TRemoteResource);
var
GetImage : TMemoryStream;
begin
GetImage := TMemoryStream.Create;
GetImage.Position := 0;
GetImage.LoadFromStream(AResource.Value.AsStream);
ImageViewer1.Bitmap.LoadFromStream(GetImage);
GetImage.Free;
end;

Пока передача данных идет между двумя Windows-приложениями, все работает прекрасно. Однако, когда я пытаюсь отправить данные от Windows-приложения в Android-приложение, которое исполняется на смартфоне, подключенном к компьютеру через USB-шнур, данные не проходят.  

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Да, что самое интересное, данные строкового типа передаются нормально. То есть, когда я передаю данные типа 'string', они прекрасно доставляются и туда и обратно. А вот когда пытаюсь передать Stream - данные не приходят. 

Ссылка на комментарий
  • 0

ImageToStream.Free;
убери может оно гасится раньше отправки

var
ImageToStream : TMemoryStream;
begin
ImageToStream := TMemoryStream.Create;
ImageToStream.LoadFromFile('Здесь находится путь к файлу');
ImageToStream.Position := 0;
TetheringAppProfile1.Resources.FindByName('ImageTransfer').Value := ImageToStream;
end;
А вот который принимает: 

procedure TForm1.TetheringAppProfile1Resources3ResourceReceived(const Sender: TObject; const AResource: TRemoteResource);
begin
  ImageViewer1.Bitmap.LoadFromStream(AResource.Value.AsStream);
end;

 

Изменено пользователем Slym
Ссылка на комментарий
  • 0
11 часов назад, Slym сказал:

ImageToStream.Free;
убери может оно гасится раньше отправки

Вряд ли. Тогда бы не работало в любом случае. А так, когда оба приложения на одном Windows-хосте, все работает прекрасно, когда дело доходит до передачи потока в приложение на гаджете - не пашет. 

Ссылка на комментарий
  • 0

Проверьте пути к файлу 

procedure TForm1.TetheringAppProfile1Resources3ResourceReceived(
  const Sender: TObject; const AResource: TRemoteResource);
var
GetImage : TMemoryStream;
begin
GetImage := TMemoryStream.Create;

GetImage.LoadFromStream(AResource.Value.AsStream);
GetImage.Position := 0;
ImageViewer1.Bitmap.LoadFromStream(GetImage);
GetImage.Free;
end;

 

Ссылка на комментарий
  • 0
В 05.03.2021 в 18:47, OnePeople сказал:

Проверьте пути к файлу 

С путями к файлу все в порядке. И тот код который вы процитировали - он в любом случае, работает уже с файлом переданным в потоке. 

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...