Ir para conteúdo
  • Cadastre-se

dev botao

Problema ao ativar o bluetooth no android


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 1233 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Fundadores
Postado

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.

  • Membros Pro
Postado
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 ?

  • Membros Pro
Postado (editado)

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

Editado por Alencar Castro
  • Fundadores
Postado

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.

  • Membros Pro
Postado
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 ?

  • Membros Pro
Postado
23 horas atrás, Daniel Simoes disse:

Acho que isso pode ocorrer, na primeira liberação... mas não sei se é algo do Android ou do Delphi...

Obrigado !

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.