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?