Einzelnen Beitrag anzeigen

Benutzerbild von dtpfl
dtpfl

Registriert seit: 19. Jan 2018
Ort: Bayern
20 Beiträge
 
Delphi 12 Athens
 
#1

Bluetooth Android/Windows

  Alt 28. Okt 2022, 16:06
Hi Leute,

ich bin noch dabei einen mobilen Drucker anzubinden. Diesen muss ich mit Bluetooth ansprechen.
Die Applikation soll am Ende unter Windows & Android laufen.

Für den Anfang habe ich versucht erstmal die Bluetooth Geräte aufzulisten.
Unter Windows32 Funktioniert dies und es werden mir Geräte aufgelistet.
Bei Android (Android 11) wird mir nichts aufgelistet... Obwohl ich die Berechtigung bei Android gesetzt habe:
Code:
<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="32" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Das Formular hat zwei TListListbox (LBBtDevices, LBBtLeDevices) und einen Button (Button1).

Quellcode:
Code:
procedure TDLFormZebra.Button1Click(Sender: TObject);
begin
  inherited;
  BtManager.StartDiscovery(1000);
  BtManagerLe.StartDiscovery(1000);
end;

procedure TDLFormZebra.FormCreate(Sender: TObject);
begin
  inherited;
  BtManager := TBluetoothManager.Current;
  BtManager.OnDiscoveryEnd := OnDiscoveryEnd;
  BtManagerLe := TBluetoothLEManager.Current;
  BtManagerLe.OnDiscoveryEnd := OnDiscoveryLEEnd;
end;

procedure TDLFormZebra.OnDiscoveryLEEnd(const Sender: TObject;
  const DeviceList: TBluetoothLEDeviceList);
begin
  try
    LBBtLeDevices.BeginUpdate;
    LBBtLeDevices.Items.Clear;
    if BtManagerLE.ConnectionState = TBluetoothConnectionState.Connected then
    begin
      for var I := 0 to DeviceList.Count-1 do
      begin
        LBBtLeDevices.Items.Add(DeviceList[i].DeviceName);
      end;
    end;
  finally
    LBBtLeDevices.EndUpdate;
  end;
end;

procedure TDLFormZebra.OnDiscoveryEnd(const Sender: TObject;
  const DeviceList: TBluetoothDeviceList);
begin
  try
    LBBtDevices.BeginUpdate;
    LBBtDevices.Items.Clear;
    if BtManager.ConnectionState = TBluetoothConnectionState.Connected then
    begin
      for var I := 0 to DeviceList.Count-1 do
      begin
        LBBtDevices.Items.Add(DeviceList[i].DeviceName);
      end;
    end;
  finally
    LBBtDevices.EndUpdate;
  end;
end;
Hat jemand eine Lösung?
Miniaturansicht angehängter Grafiken
bt1.png   bt2.png  
Delphi-Community Discord:
https://discord.com/invite/c382VBk
  Mit Zitat antworten Zitat