Все образцы Bluetooth Beacon Rad Pack Seattle не работают - PullRequest
1 голос
/ 07 августа 2020

Я пытаюсь изучить Bluetooth Beacon с помощью Rad Pack Seattle. Я пробую все образцы маяков, но ни один из них не работает. Я попробовал все 6 из них на трех разных P c (2 Windows 7 и один Server 2012), запустив код на 4 разных смартфонах android (LG и Nokia). Я установил новые версии Сиэтла на все P c. Большинство образцов выходят из строя в течение нескольких секунд. Иногда они зависают, иногда трескают sh, один из них, кажется, работает, но он просто не видит маяки, на которые я его направляю (и я знаю, что это работает, так как у меня есть несколько готовых программ, которые найдут маяки, которые я хочу, чтобы он ) et c. Один из них, самый простой, как мне кажется (в нем всего 12 строк), не работает с сообщением о «дубликатах записи».

Итак, я начинаю думать, что что-то не так с Rad Pack Seattle. Но это не может быть правдой, так что, наверное, я что-то делаю. Но что? К сожалению, таких вопросов очень мало.

Если я спрашиваю не в том месте, пожалуйста, укажите мне правильное направление.

Любые подсказки будут оценены - очень много. ; -)

PoulK

Это демонстрация Simple Beacon

Цитата

Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Beacon, FMX.Layouts, FMX.Memo,
  System.Beacon.Components, FMX.StdCtrls, FMX.Controls.Presentation, FMX.ScrollBox;

type
  TForm1 = class(TForm)
    Beacon1: TBeacon;
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Beacon1BeaconEnter(const Sender: TObject; const ABeacon: IBeacon; const CurrentBeaconList: TBeaconList);
    procedure Beacon1BeaconExit(const Sender: TObject; const ABeacon: IBeacon; const CurrentBeaconList: TBeaconList);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.Beacon1BeaconEnter(const Sender: TObject; const ABeacon: IBeacon;
  const CurrentBeaconList: TBeaconList);
begin
  Memo1.Lines.Add('New Beacon');
  Memo1.Lines.Add(Format( 'UUID: %s Major: %d Minor: %d',[ABeacon.GUID.ToString, ABeacon.Major, ABeacon.Minor]));
  Memo1.Lines.Add('Current Beacons count :' + Length(CurrentBeaconList).toString);
end;

procedure TForm1.Beacon1BeaconExit(const Sender: TObject; const ABeacon: IBeacon; const CurrentBeaconList: TBeaconList);
begin
  Memo1.Lines.Add('Beacon exited');
  Memo1.Lines.Add(Format( 'UUID: %s Major: %d Minor: %d',[ABeacon.GUID.ToString, ABeacon.Major, ABeacon.Minor]));
  Memo1.Lines.Add('Current Beacons count :' + Length(CurrentBeaconList).toString);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Beacon1.Enabled := True;
end;

end.

1 Ответ

1 голос
/ 07 августа 2020

Согласно документации Embarcadero (ниже), Bluetooth Beacon, похоже, поддерживается только начиная с Windows 10.

http://docwiki.embarcadero.com/RADStudio/Rio/en/Using_Beacons

Это объясняет случай с Windows 7 (тоже случилось со мной; потом я попробовал пару на Windows 10 и обнаружил, что они могут работать, обнаруживая маяки). К сожалению, похоже, что нет информации о минимальной версии Windows Server.

Глядя на номер версии, который говорит о 10.0 * в таблице в документации Microsoft (ниже), возможно, для этого требуется минимум Windows Сервер 2016.

https://docs.microsoft.com/en-us/windows/win32/sysinfo/operating-system-version

Для получения дополнительной информации (если это может быть полезно), я использую Delphi 10.2 (Токио) на 64- bit Windows 10.

Я пробовал пробный проект AllBeaconsScanner. Он работал нормально, после сборки на 64-разрядной целевой платформе Windows.

На моей машине путь к образцу проекта указан ниже. C:\Users\Public\Documents\Embarcadero\Studio\19.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\Bluetooth\Beacons\ExtendedBeaconScanner

...