Jump to content

dev botao

Problema ao ativar o bluetooth no android


Go to solution Solved by Daniel Simoes,
  • Este tópico foi criado há 1176 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Fundadores

Faça um teste com o Demo do ACBr, o projeto

\ACBr\Exemplos\ACBrSerial\ACBrPosPrinter\Android

Se nele exibir... observe nas propriedades de Projeto, as permissões que habilitamos... e o método para Solicitar Permissões, invocado na criação do Form

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Membros Pro
Em 01/07/2021 at 19:34, Daniel Simoes disse:

Faça um teste com o Demo do ACBr, o projeto

\ACBr\Exemplos\ACBrSerial\ACBrPosPrinter\Android

Se nele exibir... observe nas propriedades de Projeto, as permissões que habilitamos... e o método para Solicitar Permissões, invocado na criação do Form

É preciso adicionar alguma Unit, dll ou package ?

Link to comment
Share on other sites

  • Membros Pro

Sim eu já consegui compilar o exemplo, no exemplo funciona tudo ok, mas quando tento implementar em um app que estou desenvolvendo não abre a tela de solicitação para ativar o bluetooth e nem lista os dispositivos. Será que tenho que adicionar ao projeto que estou desenvolvendo alguma Unit, DLL ou instalar algum package ? Ou é apenas marcar as opções de permissões do android ? 

@Daniel Simoes

Edited by Alencar Castro
Link to comment
Share on other sites

  • Fundadores

Tem que marcar as permissões, e pedir elas em RunTime

image.png

 

Veja esse trecho dos fontes do ACBr...

function TPosPrinterAndroidTesteForm.PedirPermissoes: Boolean;
Var
  Ok: Boolean;
begin
  Ok := True;
  {$IfDef ANDROID}
  PermissionsService.RequestPermissions( [JStringToString(TJManifest_permission.JavaClass.BLUETOOTH),
                                          JStringToString(TJManifest_permission.JavaClass.BLUETOOTH_ADMIN),
                                          JStringToString(TJManifest_permission.JavaClass.BLUETOOTH_PRIVILEGED)],
      procedure(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>)
      var
        GR: TPermissionStatus;
      begin
        Ok := (Length(AGrantResults) = 3);

        if Ok then
        begin
          for GR in AGrantResults do
            if (GR <> TPermissionStatus.Granted) then
            begin
              Ok := False;
              Break;
            end;
        end;
      end );

  if not OK then
  begin
    TDialogService.MessageDialog( 'Sem permissões para acessar despositivo BlueTooth',
                                  TMsgDlgType.mtError, [TMsgDlgBtn.mbOK],
                                  TMsgDlgBtn.mbOk, 0, nil, nil);
  end;
  {$EndIf}

  Result := Ok;
end;

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Membros Pro
Em 06/07/2021 at 18:35, Daniel Simoes disse:

Tem que marcar as permissões, e pedir elas em RunTime

image.png

 

Veja esse trecho dos fontes do ACBr...

function TPosPrinterAndroidTesteForm.PedirPermissoes: Boolean;
Var
  Ok: Boolean;
begin
  Ok := True;
  {$IfDef ANDROID}
  PermissionsService.RequestPermissions( [JStringToString(TJManifest_permission.JavaClass.BLUETOOTH),
                                          JStringToString(TJManifest_permission.JavaClass.BLUETOOTH_ADMIN),
                                          JStringToString(TJManifest_permission.JavaClass.BLUETOOTH_PRIVILEGED)],
      procedure(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>)
      var
        GR: TPermissionStatus;
      begin
        Ok := (Length(AGrantResults) = 3);

        if Ok then
        begin
          for GR in AGrantResults do
            if (GR <> TPermissionStatus.Granted) then
            begin
              Ok := False;
              Break;
            end;
        end;
      end );

  if not OK then
  begin
    TDialogService.MessageDialog( 'Sem permissões para acessar despositivo BlueTooth',
                                  TMsgDlgType.mtError, [TMsgDlgBtn.mbOK],
                                  TMsgDlgBtn.mbOk, 0, nil, nil);
  end;
  {$EndIf}

  Result := Ok;
end;

 

Consegui ativar o bluetooth pelo app, mas por que ele trava quanto eu aceito ativar o bluetooth ?

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...