Ver Mensaje Individual
  #3  
Antiguo 25-09-2023
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Reputación: 17
jhonalone Va por buen camino
Muchas gracias Casimiro.
Es interesante para enviar texto a una impresora de escritorio por bluetooth..
Yo lo estoy enviando a una portátil en plan ticket, pero por bluetooth.
El problema está precisamente con los permisos.
Han cambiado desde la versión 12, según Google pero aunque le das los permisos, se cae el programa en la línea que indico en el adjunto.

He intentado darle todos los permisos que indica Google, pero nada. Siempre se cae en el mismo punto.

Código Delphi [-]
procedure TDevice.ListaDevices;
var
  Msg: string;
  I, B: Integer;

  ListaVinculados: TBluetoothDeviceList;
  LServices: TBluetoothServiceList;
begin

  try
  FBluetoothManager.Create;
   FBluetoothManager.EnableBluetooth;
    FBluetoothManager := TBluetoothManager.Current;
    if FBluetoothManager = nil
    then begin
         Close;
         end;

    FBluetoothManager.SocketTimeout := 100;

    BluetoothAdapter := FBluetoothManager.CurrentAdapter; // Aquí DA FALLO
     ShowMessage('Aquí');   exit;
    if BluetoothAdapter = nil
    then begin
         Close;
         end;

    ListaVinculados := FBluetoothManager.GetPairedDevices(BluetoothAdapter);
    if ListaVinculados = nil
    then begin
         Close;
         end;
         
   ComboDevices.Items.Clear; // Limpiamos cada vez el combo
   
    for I := 0 to ListaVinculados.Count - 1 do
    begin
      Impresora := ListaVinculados[i] as TBluetoothDevice;
      if Impresora.IsPaired then
      begin
        LServices := Impresora.GetServices;
        for B := 0 to LServices.Count - 1 do
        begin
          ServiceGUI := GUIDToString(LServices[b].UUID);
          Guid := LServices[b].UUID;
          ServiceName := LServices[b].Name;
        end;
      end
      else begin
           Close;
           end;
    ComboDevices.Items.Add(Impresora.DeviceName);
    end;
  except
   on E: Exception do
   begin
     Close;
   end;

 end;
 //FBluetoothManager.Destroy;
 if ComboDevices.Items.Count > 0 // Seleccionamos el primero
   then ComboDevices.ItemIndex := 0;

end;
Este es el texto y el punto donde se cae el programa

En la versión 9 funciona perefecto.
La prueba del adjunto la estoy usando a ver si consigo comunicar en la versión 13.
El problema es muy parecido al de mi último post.
Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)

Última edición por jhonalone fecha: 25-09-2023 a las 12:05:33.
Responder Con Cita