Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Разрешение проблемы "Receiver not found" при использовании сканера на Zebra TC25 в RAD Studio 10.2

Delphi , ОС и Железо , Сканер

В данной статье мы рассмотрим проблему, с которой может столкнуться разработчик при использовании сканера на устройстве Zebra TC25 в приложении, созданном с помощью Embarcadero RAD Studio 10.2. Проблема заключается в том, что при попытке активировать сканер при нажатии кнопки на экране приложения появляется ошибка "Receiver not found". Мы рассмотрим причину этой проблемы и предложим решение, а также альтернативный подход к разрешению проблемы.

Причиной ошибки "Receiver not found" является неверная отправка intent. В коде, приведенном в описании проблемы, intent отправляется с помощью метода startActivity(), который предназначен для запуска активности. Однако в данном случае нам нужно отправить intent как broadcast intent, чтобы активировать сканер на устройстве Zebra TC25.

Для решения этой проблемы нужно заменить вызов метода startActivity() на вызов метода sendBroadcast(). Ниже приведен пример кода на Object Pascal (Delphi), который решает проблему:

procedure TMainForm.btnScanClick(Sender: TObject);
var
  Intent: JIntent; //Declares the intent object
begin
  try
    Intent := TJIntent.Create;
    Intent.setType(StringToJString('text/pas'));
    Intent.setAction(StringToJString('com.symbol.datawedge.api.ACTION'));
    Intent.putExtra(StringToJString('com.symbol.datawedge.api.SOFT_SCAN_TRIGGER'), StringtoJString('START_SCANNING'));
    TAndroidHelper.Activity.sendBroadcast(Intent); //Sends the intent as a broadcast intent
  except
    on E:Exception do
      mmLogs.Lines.Add('Erreur: '+DateTimeToStr(now)+' - btnScanClick - '+E.Message);
  end;
end;

В этом примере мы создаем intent, устанавливаем его тип и действие, добавляем extra-параметр для активации сканера и отправляем его как broadcast intent с помощью метода sendBroadcast().

Также стоит отметить, что в альтернативном ответе было предложено добавить дополнительный intent-filter в раздел activity в файле AndroidManifest.xml. Однако это не является необходимым условием для решения проблемы, так как в подтвержденном ответе показано, что приложение работает корректно без дополнительных изменений в файле AndroidManifest.xml.

В заключение, мы рассмотрели проблему "Receiver not found" при использовании сканера на Zebra TC25 в RAD Studio 10.2 и предложили решение, которое заключается в отправке intent как broadcast intent с помощью метода sendBroadcast(). Мы также рассмотрели альтернативный подход к разрешению проблемы и показали, что дополнительные изменения в файле AndroidManifest.xml не являются необходимыми для решения этой проблемы.

Создано по материалам из источника по ссылке.

В статье рассматривается проблема, возникающая у разработчика при использовании сканера на устройстве Zebra TC25 в приложении, созданном с помощью Embarcadero RAD Studio 10.2, заключающаяся в ошибке 'Receiver not found' при активации сканера через кнопку


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Сканер ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-28 07:14:56/0.0034079551696777/0