Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi Bluetooth Android/Windows (https://www.delphipraxis.net/211743-bluetooth-android-windows.html)

dtpfl 28. Okt 2022 16:06

Bluetooth Android/Windows
 
Liste der Anhänge anzeigen (Anzahl: 2)
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? :D

TurboMagic 28. Okt 2022 18:30

AW: Bluetooth Android/Windows
 
Ich glaube, du musst diese Berechtigungen noch zur Laufzeit abfragen d.h. vom benutzer genehmigen lassen.
Ist seit Android 8 oder der Fall. Dazu müsste ein Demo programm bei Delphi dabei sein.

dtpfl 31. Okt 2022 12:14

AW: Bluetooth Android/Windows
 
Liste der Anhänge anzeigen (Anzahl: 1)
Weiß jemand wo ich die Demo finde?

dtpfl 31. Okt 2022 15:46

AW: Bluetooth Android/Windows
 
Also ich habs jetzt mal mit diesem Demo-Projekt getestet: https://github.com/Embarcadero/RADSt...%20Basic%20app

Leider habe ich immer noch dasselbe Problem. Bei Windows funktionierts, bei Android nicht...

TurboMagic 1. Nov 2022 07:19

AW: Bluetooth Android/Windows
 
Hallo,

die lokal installierten Demos finden sich bei mir hier:

C:\Users\Public\Documents\Embarcadero\Studio\22.0\ Samples

Und solltest du unter Android nicht weiter kommen und hier auch keiner
weiteren Rat haben, du aber eine Subskription hast, kannst du immer noch ein
offizielles Ticket bei EMBT aufmachen.

Ich meine damit erstmal nicht QP sondern das hier:
https://www.embarcadero.com/support

Da meldet sich dann jemand von EMBT direkt bei dir.
Da wär's aber vermutlich sinnvoll, ein kleines Demo Projekt fertig zu haben
das minimalistisch das Problem und deinen bisherigen Lösungsversuch zeigt.

Sollte auf dem Weg eine Lösung zustande kommen, darfst du die uns dann gerne hier
vorstellen ;-)

Grüße
TurboMagic

dtpfl 2. Nov 2022 16:04

AW: Bluetooth Android/Windows
 
Danke für die hilfreiche Antwort!
Habs jetzt Dank diesem Beispielprojekt hinbekommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz