marciodias Novato
Registrado: Quarta-Feira, 8 de Julho de 2020 Mensagens: 1
|
Enviada: Qua Jul 08, 2020 4:40 pm Assunto: Intent no Delphi Firemonkey |
|
|
Olá amigos!
Será que alguém aí já trabalhou com intent no firemonkey?
Estou desenvolvendo um app que vai rodar em um dispositivo móvel (uma máquina de cartão da Cielo).
Essa máquina se comunica com uma impressora integrada, através do envio de intent para uma app que roda em segundo plano do dispositivo.
Eu estou tentando o seguinte:
{$IFDEF ANDROID}
Base64 := MinhaEncodeBase64(BytesOf(scheme));
// Este é o formato da URI que deve ser enviada para a impressora
Uri := 'lio://print?request='+Base64+'&urlCallback=order://response';
Imprime1 := TJIntent.Create;
Imprime1.setType(StringToJString('text/pas'));
Imprime1.setAction(TJIntent.JavaClass.ACTION_VIEW);
Imprime1 := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW,
TJnet_Uri.JavaClass.parse(StringToJString(TIdURI.URLEncode(uri))));
Imprime1.setPackage(StringToJString('com.ads.lio.uriappclient'));
Imprime1.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString(uri));
if MainActivity.getPackageManager.queryIntentActivities(Imprime1,
TJPackageManager.JavaClass.MATCH_DEFAULT_ONLY).size > 0 then
MainActivity.startActivity(Imprime1);
{$ENDIF}
A Rotina acima está imprimindo, mas há um problema.
Depois da impressão a aplicação que controla a impressoa permanece aberta, como se tivesse esperando alguma retorno da minha aplicação.
Quando eu clico no botão "VOLTAR" do dispositivo a aplicação reimprime
uma linha que já foi impressa e eu tenho que clica no "Voltar" várias vezes,
até meu aplicativo voltar a ser exibido na tela.
Me parece que da maneira que eu estou enviando as Intents a minha aplicação fica aguardando um retorno da app que controla a impressora.
Mas não é necessário nem conveniente aguardar esse retorno.
Será que alguém monta esse quebra-cabeça?
Desde já agradeço. |
|